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

📄 auditintercept.h

📁 MICO2.3.13 corba 环境平台
💻 H
字号:
// -*- c++ -*-////  MICOsec --- a free CORBA Security implementation//  Copyright (C) 2000 ObjectSecurity Ltd.////  This library is free software; you can redistribute it and/or//  modify it under the terms of the GNU Library General Public//  License as published by the Free Software Foundation; either//  version 2 of the License, or (at your option) any later version.////  This library is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU//  Library General Public License for more details.////  You should have received a copy of the GNU Library General Public//  License along with this library; if not, write to the Free//  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//  Send comments and/or bug reports to://                 micosec@objectsecurity.com//#ifndef __AUDITINTERCEPT_H__#define __AUDITINTERCEPT_H__#define MICO_CONF_INTERCEPT#define MICO_CONF_IMR#define MICO_CONF_IR#include <CORBA.h>#include <mico/impl.h>#include <mico/template_impl.h>#include <mico/util.h>#include <mico/ioptypes.h>#define SERVER (CORBA::Octet)4#define CLIENT (CORBA::Octet)0//abstract base classclass AuditInterceptor{protected:    AuditInterceptor()    {};    ~AuditInterceptor()    {};    void    audit_analyse(Security::EventType ev_type, const char* interface_name,		  const char* object_ref, const char* operation,		  const char* initiator, short success_failure,		  CORBA::Octet c_s = SERVER);};// Server Interceptorclass AuditServerInterceptor    : public AuditInterceptor,      virtual public PortableInterceptor::ServerRequestInterceptor{private:    Security::Opaque ret_;    CORBA::Boolean access_control_;    static AuditServerInterceptor* S_self_;    std::string obj_reference_;    std::string initiator_;    typedef std::map<unsigned long, char*> RequestMap;    typedef std::map<unsigned long, char*>::iterator    RequestMapIterator;    RequestMap request_map_;protected:    time_t    timeT2epoch(TimeBase::TimeT timeV);    TimeBase::TimeT    epoch2timeT(time_t);    void    get_audit_id(CORBA::ULong& l);    void    get_object_ref(CORBA::ULong& l);    void    get_peer_address(CORBA::ULong& l);public:    AuditServerInterceptor(CORBA::Boolean acc = TRUE);    ~AuditServerInterceptor();    virtual char*    name();    virtual void    destroy()    {}    virtual void    receive_request_service_contexts    (PortableInterceptor::ServerRequestInfo_ptr ri);    virtual void    receive_request(PortableInterceptor::ServerRequestInfo_ptr ri);    virtual void    send_reply(PortableInterceptor::ServerRequestInfo_ptr ri);    virtual void    send_exception(PortableInterceptor::ServerRequestInfo_ptr ri);    virtual void    send_other(PortableInterceptor::ServerRequestInfo_ptr ri);    static void    _exec_principal_auth(const char* cred);};// Server Interceptor Initializerclass AuditServerInitializer    : virtual public PortableInterceptor::ORBInitializer{public:    AuditServerInitializer()    {}    ~AuditServerInitializer()    {}    virtual void    pre_init(PortableInterceptor::ORBInitInfo_ptr info);    virtual void    post_init(PortableInterceptor::ORBInitInfo_ptr info);};// Client Interceptorclass AuditClientInterceptor    : virtual public PortableInterceptor::ClientRequestInterceptor,      public AuditInterceptor{private:    CORBA::Octet* ret_;    static AuditClientInterceptor* S_self_;	protected:    CORBA::Octet*    get_audit_id    (PortableInterceptor::ClientRequestInfo_ptr req,     CORBA::ULong& l);    CORBA::Octet*    get_object_ref    (PortableInterceptor::ClientRequestInfo_ptr req,     CORBA::ULong& l);    CORBA::Octet*    get_interface_name    (PortableInterceptor::ClientRequestInfo_ptr req,     CORBA::ULong& l);public:    AuditClientInterceptor();    ~AuditClientInterceptor();    virtual char*    name();    virtual void    destroy()    {}    virtual void    send_request(PortableInterceptor::ClientRequestInfo_ptr ri);    virtual void    send_poll(PortableInterceptor::ClientRequestInfo_ptr ri);    virtual void    receive_reply(PortableInterceptor::ClientRequestInfo_ptr ri);    virtual void    receive_exception(PortableInterceptor::ClientRequestInfo_ptr ri);    virtual void    receive_other(PortableInterceptor::ClientRequestInfo_ptr ri);    static void    _exec_principal_auth (const char* cred);};// Client Interceptor Initializerclass AuditClientInitializer    : virtual public PortableInterceptor::ORBInitializer{public:    AuditClientInitializer()    {}    ~AuditClientInitializer()    {}    virtual void    pre_init(PortableInterceptor::ORBInitInfo_ptr info);    virtual void    post_init(PortableInterceptor::ORBInitInfo_ptr info);};#endif // __AUDITINTERCEPT_H__

⌨️ 快捷键说明

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