auth.h
上传用户:ladybrid91
上传日期:2007-01-04
资源大小:287k
文件大小:2k
源码类别:

Web服务器

开发平台:

Unix_Linux

  1. /*
  2. ** auth.h
  3. **
  4. ** Copyright (c) 1994-1997 Peter Eriksson <pen@signum.se>
  5. **
  6. ** This program is free software; you can redistribute it and/or modify
  7. ** it under the terms of the GNU General Public License as published by
  8. ** the Free Software Foundation; either version 2 of the License, or
  9. ** (at your option) any later version.
  10. **
  11. ** This program is distributed in the hope that it will be useful,
  12. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. ** GNU General Public License for more details.
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software
  17. ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. */
  19. #ifndef PHTTPD_AUTH_H
  20. #define PHTTPD_AUTH_H
  21. #define AUTH_XTYPE_NONE 0
  22. #define AUTH_XTYPE_BIS   1
  23. #define AUTH_XTYPE_FILE  2
  24. /* added RK */
  25. #define AUTH_XTYPE_FULLNAME 3
  26. #define ACL_REJECT 0
  27. #define ACL_ALLOW 1
  28. #define ACL_AUTHENTIFICATE 2
  29. struct authinfo
  30. {
  31.     char *type; /* Authentication type (ie "basic") */
  32.     char *data; /* Raw, undecoded, authentication data */
  33.     /* Type specific data */
  34.     union
  35.     {
  36. /* Extracted data for the "basic" type of authentication stuff */
  37. struct
  38. {
  39.     char *username;
  40.     char *password;
  41. } basic;
  42.     } u;
  43.     
  44.     int   xtype;     /* Typ of data in "xinfo" */
  45.     void *xinfo; /* For user-defined use */
  46.     void (*xfree)(void *);   /* For freeing the data in xinfo */
  47.     
  48.     /* Called from the CGI module to export information */
  49.     void (*xsetenv)(void *xinfo,
  50.     char *(*x_setenv)(char **, const char *, const char *),
  51.     char **envp);
  52.     char *validated_username;
  53. };
  54. extern struct authinfo *auth_new(const char *auth, const char *type);
  55. extern void auth_free(struct authinfo *aip);
  56. struct httpinfo;
  57. extern struct authinfo *auth_get(struct httpinfo *hip);
  58. extern struct table *auth_handlers_table;
  59. struct connectioninfo;
  60. extern int access_check(urlinfo_t *uip, struct connectioninfo *cip);
  61. struct httpinfo;
  62. extern int access_auth(struct httpinfo *hip, struct connectioninfo *cip,
  63.        const char *acl_path);
  64. #endif