⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsapifilter.h

📁 jboss与apache集成的中间件,详情请参看文档说明.
💻 H
字号:
/*-------------------------------------------------------------------- * *      File:      dsapifilter.h * *      Copyright (c)1999 Iris Associates * *-------------------------------------------------------------------*/#if !defined(DSAPIFILTER_H)#define DSAPIFILTER_H#ifdef __cplusplusextern "C"{#endif/*--- *      Types and Defines */#define kInterfaceVersion   2#define kMaxFilterDesc   255    typedef unsigned char LMBCS;    typedef enum    {        kFilterNotHandled = 0,        kFilterHandledRequest = 1,        kFilterHandledEvent = 2,        kFilterError = 3    }    FilterReturnCode;/*-- *      Filter interface *//*---*      events to register for*/    typedef enum    {        kFilterRawRequest = 0x01,        kFilterParsedRequest = 0x02,        kFilterAuthUser = 0x04,        kFilterUserNameList = 0x08,        kFilterMapURL = 0x10,        kFilterResponse = 0x20,        kFilterRawWrite = 0x40,        kFilterEndRequest = 0x80,        kFilterAny = 0xFF    }    EventFlags;/*--- *      filter initialization data */    typedef struct    {        unsigned int serverFilterVersion;        unsigned int appFilterVersion;        unsigned int eventFlags;        unsigned int initFlags;        char filterDesc[kMaxFilterDesc + 1];    }    FilterInitData;/*--- *      request line structure */    typedef struct    {        unsigned int method;        char *URL;        char *version;        char *userName;        char *password;        unsigned char *clientCert;        unsigned int clientCertLen;        char *contentRead;        unsigned int contentReadLen;    }    FilterRequest;/*--- *      filter context data included in every call to filter */    typedef struct _FilterContext    {        unsigned int contextSize;        unsigned int revision;        void *serverContext;        unsigned int serverReserved;        unsigned int securePort;        void *privateContext;        int (*GetRequest) (struct _FilterContext * context,                           FilterRequest * request, unsigned int *errID);        int (*GetRequestContents) (struct _FilterContext * context,                                   char **contents, unsigned int *errID);        int (*GetServerVariable) (struct _FilterContext * context, char *name,                                  void *buffer, unsigned int bufferSize,                                  unsigned int *errID);        int (*WriteClient) (struct _FilterContext * context, char *buffer,                            unsigned int bufferLen, unsigned int reserved,                            unsigned int *errID);        void *(*AllocMem) (struct _FilterContext * context, unsigned int size,                           unsigned int reserved, unsigned int *errID);        int (*ServerSupport) (struct _FilterContext * context,                              unsigned int funcType, void *data1, void *data2,                              unsigned int other, unsigned int *errID);    }    FilterContext;    typedef unsigned int (*FilterInitFuncType) (FilterInitData * initData);    typedef unsigned int (*FilterEventFuncType) (FilterContext * context,                                                 unsigned int eventType,                                                 void *eventData,                                                 unsigned int *errID);    typedef unsigned int (*FilterTermFuncType) (unsigned int);/*--- *      request methods */    typedef enum    {        kRequestNone = 0,        kRequestHEAD = 1,        kRequestGET = 2,        kRequestPOST = 3,        kRequestPUT = 4,        kRequestDELETE = 5    }    RequestMethod;/*--- *      server support function types */    typedef enum    {        kWriteResponseHeaders = 1    }    ServerSupportTypes;/*--- *      'data1' for server support function 'kWriteResponseHeaders' */    typedef struct    {        unsigned int responseCode;        char *reasonText;        char *headerText;    }    FilterResponseHeaders;/*--- *      raw request (headers not processed yet) */    typedef struct    {        unsigned int requestMethod;        int (*GetAllHeaders) (FilterContext * context, char **headers,                              unsigned int *errID);        int (*GetHeader) (FilterContext * context, char *name, char *buffer,                          unsigned int bufferSize, unsigned int *errID);        int (*SetHeader) (FilterContext * context, char *name, char *value,                          unsigned int *errID);        int (*AddHeader) (FilterContext * context, char *header,                          unsigned int *errID);        unsigned int reserved;    }    FilterRawRequest;/*--- *      parsed request */    typedef struct    {        unsigned int requestMethod;        int (*GetAllHeaders) (FilterContext * context, char **headers,                              unsigned int *errID);        int (*GetHeader) (FilterContext * context, char *name, char *buffer,                          unsigned int bufferSize, unsigned int *errID);        unsigned int reserved;    }    FilterParsedRequest;/*--- *      URL map */    typedef struct    {        const char *url;        char *pathBuffer;        unsigned int bufferSize;        unsigned int mapType;    }    FilterMapURL;/*--- *      URL map types */    typedef enum    {        kURLMapUnknown = 0,        kURLMapPass = 1,        kURLMapExec = 2,        kURLMapRedirect = 3,        kURLMapService = 4,        kURLMapDomino = 5    }    FilterULMapTypes;/*--- *      user authentication */    typedef struct    {        LMBCS *userName;        LMBCS *password;        unsigned char *clientCert;        unsigned int clientCertLen;        unsigned int authFlags;        unsigned int preAuthenticated;        unsigned int foundInCache;        unsigned int authNameSize;        LMBCS *authName;        unsigned int authType;        int (*GetUserNameList) (FilterContext * context, LMBCS * buffer,                                unsigned int bufferSize,                                unsigned int *numNames, unsigned int reserved,                                unsigned int *errID);        int (*GetHeader) (FilterContext * context, char *name, char *buffer,                          unsigned int bufferSize, unsigned int *errID);    }    FilterAuthenticate;/*--- *      user authentication types */    typedef enum    {        kNotAuthentic = 0,        kAuthenticBasic = 1,        kAuthenticClientCert = 2    }    FilterAuthenticationTypes;/*--- *      authentication configuration flags */    typedef enum    {        kAuthAllowBasic = 1,        kAuthAllowAnonymous = 2,        kAuthAllowSSLCert = 4,        kAuthAllowSSLBasic = 8,        kAuthAllowSSLAnonymous = 16,        kAuthRedirectToSSL = 32    }    FilterAuthConfigFlags;/*--- *      user name list */    typedef struct    {        const LMBCS *userName;        int (*GetUserNameList) (FilterContext * context, LMBCS * buffer,                                unsigned int bufferSize,                                unsigned int *numNames, unsigned int reserved,                                unsigned int *errID);        int (*PopulateUserNameList) (FilterContext * context, LMBCS * buffer,                                     unsigned int bufferSize,                                     unsigned int *numNames,                                     unsigned int reserved,                                     unsigned int *errID);        int (*AddGroupsToList) (FilterContext * context, LMBCS * groupNames,                                unsigned int numGroupNames,                                unsigned int reserved, unsigned int *errID);        int (*RemoveGroupsFromList) (FilterContext * context,                                     unsigned int reserved,                                     unsigned int *errID);        unsigned int reserved;    }    FilterUserNameList;/*--- *      request response */    typedef struct    {        unsigned int responseCode;        char *reasonText;        int (*GetAllHeaders) (FilterContext * context, char **headers,                              unsigned int *errID);        int (*GetHeader) (FilterContext * context, char *name, char *buffer,                          unsigned int bufferSize, unsigned int *errID);        int (*SetHeader) (FilterContext * context, char *name, char *value,                          unsigned int *errID);        int (*AddHeader) (FilterContext * context, char *header,                          unsigned int *errID);        unsigned int reserved;    }    FilterResponse;/*--- *      write content */    typedef struct    {        char *content;        unsigned int contentLen;        unsigned int reserved;    }    FilterRawWrite;#ifdef __cplusplus}#endif#endif                          /* DSAPIFILTER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -