TAO_Security_Current Class Reference

Implementation of the SecurityLevel2::Current interface. More...

#include <Security_Current.h>

Inheritance diagram for TAO_Security_Current:

Inheritance graph
[legend]
Collaboration diagram for TAO_Security_Current:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Security_Current (size_t tss_slot, const char *orb_id)
 Constructor.

size_t tss_slot (void) const
 Return the TSS slot ID assigned to the "SecurityCurrent" object.

SecurityLevel1::Current Methods
These methods are founds in the SecurityLevel1::Current interface.

virtual Security::AttributeListget_attributes (const Security::AttributeTypeList &attributes) throw (CORBA::SystemException)
SecurityLevel2::Current Methods
These methods are founds in the SecurityLevel2::Current interface.

virtual SecurityLevel2::ReceivedCredentials_ptr received_credentials () throw (CORBA::SystemException)

Protected Member Functions

 ~TAO_Security_Current (void)
int init (void)
TAO::Security::Current_Implimplementation (void)
 Set the TSS Security::Current implementation.


Private Member Functions

 TAO_Security_Current (const TAO_Security_Current &)
void operator= (const TAO_Security_Current &)

Private Attributes

size_t const  tss_slot_
 TSS slot assigned to this object.

CORBA::String_var orb_id_
 The ORBid of the ORB with which this object is registered.

TAO_ORB_Coreorb_core_

Detailed Description

Implementation of the SecurityLevel2::Current interface.

This object can be used to obtain session related security information about the current execution context.

Definition at line 47 of file Security_Current.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Security_Current::TAO_Security_Current size_t  tss_slot,
const char *  orb_id
 

Constructor.

Definition at line 16 of file Security_Current.cpp.

00018   : tss_slot_ (tss_slot),
00019     orb_id_ (orb_id),
00020     orb_core_ (0)
00021 {
00022 }

TAO_Security_Current::~TAO_Security_Current void   )  [protected]
 

Destructor Protected to force allocation on the heap.

Definition at line 24 of file Security_Current.cpp.

00025 {
00026 }

TAO_Security_Current::TAO_Security_Current const TAO_Security_Current  )  [private]
 

Prevent copying through the copy constructor and the assignment operator.


Member Function Documentation

virtual Security::AttributeList* TAO_Security_Current::get_attributes const Security::AttributeTypeList attributes  )  throw (CORBA::SystemException) [virtual]
 

Return the security attributes corresponding to the types in the given attribute type list associated with the current request.

ACE_INLINE TAO::Security::Current_Impl * TAO_Security_Current::implementation void   )  [protected]
 

Set the TSS Security::Current implementation.

The pointer is actually one to a concrete implementation provided by the underlying security mechanism. For example, SSLIOP implements the SecurityLevel2::Current interface. Similarly, SECIOP would do the same.

There is no function that places the implementation pointer in TSS. The underlying security mechanism does that.

Definition at line 14 of file Security_Current.inl.

References TAO_ORB_Core::get_tss_resource(), and init().

00015 {
00016   if (this->orb_core_ == 0 && this->init () != 0)
00017     return 0;
00018 
00019   TAO::Security::Current_Impl *impl =
00020     static_cast<TAO::Security::Current_Impl *> (
00021       this->orb_core_->get_tss_resource (this->tss_slot_));
00022 
00023   return impl;
00024 }

int TAO_Security_Current::init void   )  [protected]
 

Fully initialize this object. This method is used predominantly to set the ORB core pointer.

Definition at line 62 of file Security_Current.cpp.

References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK_RETURN, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_PRINT_EXCEPTION, ACE_TRY, ACE_TRY_CHECK, orb_id_, CORBA::ORB_init(), and TAO_debug_level.

Referenced by implementation().

00063 {
00064   int result = 0;
00065 
00066   ACE_DECLARE_NEW_CORBA_ENV;
00067   ACE_TRY
00068     {
00069       int argc = 0;
00070       char **argv = 0;
00071       CORBA::ORB_var orb = CORBA::ORB_init (argc,
00072                                             argv,
00073                                             this->orb_id_.in ()
00074                                             ACE_ENV_ARG_PARAMETER);
00075       ACE_TRY_CHECK;
00076 
00077       this->orb_core_ = orb.in ()->orb_core ();
00078 
00079       // No longer need the ORBid, so reclaim the memory it was
00080       // occupying.
00081       (void) this->orb_id_.out ();
00082     }
00083   ACE_CATCHANY
00084     {
00085       if (TAO_debug_level >= 1)
00086         ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
00087                              "Could not initialize SecurityCurrent:");
00088 
00089       result = -1;
00090     }
00091   ACE_ENDTRY;
00092   ACE_CHECK_RETURN (-1);
00093 
00094   return result;
00095 }

void TAO_Security_Current::operator= const TAO_Security_Current  )  [private]
 

Prevent copying through the copy constructor and the assignment operator.

virtual SecurityLevel2::ReceivedCredentials_ptr TAO_Security_Current::received_credentials  )  throw (CORBA::SystemException) [virtual]
 

Return the Credentials received from the client associate with the current request.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE size_t TAO_Security_Current::tss_slot void   )  const
 

Return the TSS slot ID assigned to the "SecurityCurrent" object.

The concrete TSS SecurityCurrent implementations will each use this slot ID.

Definition at line 8 of file Security_Current.inl.

References tss_slot_.

00009 {
00010   return this->tss_slot_;
00011 }


Member Data Documentation

TAO_ORB_Core* TAO_Security_Current::orb_core_ [private]
 

Pointer to the ORB Core corresponding to the ORB with which this object is registered.

Reimplemented from CORBA::Object.

Definition at line 133 of file Security_Current.h.

CORBA::String_var TAO_Security_Current::orb_id_ [private]
 

The ORBid of the ORB with which this object is registered.

Definition at line 129 of file Security_Current.h.

Referenced by init().

size_t const TAO_Security_Current::tss_slot_ [private]
 

TSS slot assigned to this object.

Definition at line 126 of file Security_Current.h.

Referenced by tss_slot().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 13:51:48 2006 for TAO_Security by doxygen 1.3.6