summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h b/TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h
new file mode 100644
index 00000000000..ad0f8d40a2f
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Security/Security_Current_Impl.h
@@ -0,0 +1,81 @@
+// -*- C++ -*-
+
+// ===================================================================
+/**
+ * @file Security_Current_Impl.h
+ *
+ * $Id$
+ *
+ * @author Ossama Othman <ossama@uci.edu>
+ */
+// ===================================================================
+
+#ifndef TAO_SECURITY_CURRENT_IMPL_H
+#define TAO_SECURITY_CURRENT_IMPL_H
+
+#include "ace/pre.h"
+
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/SecurityLevel2C.h"
+
+/**
+ * @class TAO_Security_Current_Impl
+ *
+ * @brief Base class for the TSS portion of any underlying security
+ * mechanism.
+ *
+ * This class provides the same interface as the
+ * SecurityLevel2::Current object. However, it is not derived from
+ * that interface since we need to explicitly avoid virtual
+ * inheritance so that it is safe to store subclasses in a "void *"
+ * and later cast that pointer back to the subclass pointer type.
+ */
+class TAO_Security_Current_Impl
+{
+public:
+
+ /// Destructor.
+ virtual ~TAO_Security_Current_Impl (void);
+
+ /**
+ * @name SecurityLevel1::Current Methods
+ *
+ * These methods are founds in the SecurityLevel1::Current
+ * interface.
+ */
+ //@{
+ /// Return the security attributes corresponding to the types in the
+ /// given attribute type list associated with the current request.
+ virtual Security::AttributeList * get_attributes (
+ const Security::AttributeTypeList & attributes,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
+ //@}
+
+ /**
+ * @name SecurityLevel2::Current Methods
+ *
+ * These methods are founds in the SecurityLevel2::Current
+ * interface.
+ */
+ //@{
+ /// Return the Credentials received from the client associate with
+ /// the current request.
+ virtual SecurityLevel2::ReceivedCredentials_ptr received_credentials (
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException)) = 0;
+ //@}
+
+ /// Return the unique tag that identifies the concrete subclass.
+ virtual CORBA::ULong tag (void) const = 0;
+
+};
+
+#include "ace/post.h"
+
+#endif /* TAO_SECURITY_CURRENT_IMPL_H */