00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file SL3_SecurityManager.h 00006 * 00007 * SL3_SecurityManager.h,v 1.6 2005/11/16 07:53:25 ossama Exp 00008 * 00009 * @author Ossama Othman <ossama@dre.vanderbilt.edu> 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_SL3_SECURITY_MANAGER_H 00015 #define TAO_SL3_SECURITY_MANAGER_H 00016 00017 #include /**/ "ace/pre.h" 00018 #include "orbsvcs/Security/security_export.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "orbsvcs/SecurityLevel3C.h" 00025 00026 #include "tao/LocalObject.h" 00027 00028 #if defined(_MSC_VER) 00029 #pragma warning(push) 00030 #pragma warning(disable:4250) 00031 #endif /* _MSC_VER */ 00032 00033 00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00035 00036 namespace TAO 00037 { 00038 namespace SL3 00039 { 00040 /** 00041 * @class SecurityManager 00042 * 00043 * @brief 00044 * 00045 * 00046 */ 00047 class SecurityManager 00048 : public virtual SecurityLevel3::SecurityManager, 00049 public virtual TAO_Local_RefCounted_Object 00050 { 00051 public: 00052 00053 /// Constructor 00054 SecurityManager (SecurityLevel3::CredentialsCurator_ptr cc); 00055 00056 /** 00057 * @name SecurityLevel3::SecurityManager Methods 00058 * 00059 * Methods required by the SecurityLevel3::SecurityManager 00060 * interface. 00061 */ 00062 //@{ 00063 virtual SecurityLevel3::CredentialsCurator_ptr credentials_curator ( 00064 ACE_ENV_SINGLE_ARG_DECL) 00065 ACE_THROW_SPEC ((CORBA::SystemException)); 00066 00067 virtual SecurityLevel3::TargetCredentials_ptr get_target_credentials ( 00068 CORBA::Object_ptr the_object 00069 ACE_ENV_ARG_DECL) 00070 ACE_THROW_SPEC ((CORBA::SystemException)); 00071 00072 virtual SecurityLevel3::ContextEstablishmentPolicy_ptr 00073 create_context_estab_policy ( 00074 SecurityLevel3::CredsDirective creds_directive, 00075 const SecurityLevel3::OwnCredentialsList & creds_list, 00076 SecurityLevel3::FeatureDirective use_client_auth, 00077 SecurityLevel3::FeatureDirective use_target_auth, 00078 SecurityLevel3::FeatureDirective use_confidentiality, 00079 SecurityLevel3::FeatureDirective use_integrity 00080 ACE_ENV_ARG_DECL) 00081 ACE_THROW_SPEC ((CORBA::SystemException)); 00082 00083 virtual SecurityLevel3::ObjectCredentialsPolicy_ptr 00084 create_object_creds_policy ( 00085 const SecurityLevel3::OwnCredentialsList & cred_list 00086 ACE_ENV_ARG_DECL) 00087 ACE_THROW_SPEC ((CORBA::SystemException)); 00088 //@} 00089 00090 protected: 00091 00092 /// Destructor 00093 /** 00094 * Protected destructor to enforce proper memory management 00095 * through the reference counting mechanism. 00096 */ 00097 virtual ~SecurityManager (void); 00098 00099 private: 00100 00101 /// The ORB-specific SecurityLevel3::CredentialsCurator 00102 /// reference. 00103 SecurityLevel3::CredentialsCurator_var credentials_curator_; 00104 00105 }; 00106 00107 } // End SL3 namespace 00108 } // End TAO namespace 00109 00110 TAO_END_VERSIONED_NAMESPACE_DECL 00111 00112 00113 #if defined(_MSC_VER) 00114 #pragma warning(pop) 00115 #endif /* _MSC_VER */ 00116 00117 #include /**/ "ace/post.h" 00118 00119 #endif /* TAO_SL3_SECURITY_MANAGER_H */