summaryrefslogtreecommitdiff
path: root/ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl')
-rw-r--r--ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl88
1 files changed, 88 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl b/ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl
new file mode 100644
index 00000000000..c313ef474c6
--- /dev/null
+++ b/ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl
@@ -0,0 +1,88 @@
+// -*- IDL -*-
+
+//=============================================================================
+/**
+ * @file ATLAS.idl
+ *
+ * $Id$
+ *
+ * IDL for Authorization Token Layer Acquisition Service (ATLAS).
+ *
+ * @author Object Management Group
+ */
+//=============================================================================
+
+
+#ifndef _ATLAS_IDL_
+#define _ATLAS_IDL_
+
+#include <TimeBase.idl>
+#include <CosNaming.idl>
+#include <CSI.idl>
+#include <CSIIOP.idl>
+
+#pragma prefix "omg.org"
+
+module ATLAS {
+ typedef sequence<TimeBase::UtcT, 1> ExpiryTime;
+ typedef sequence<CSI::IdentityToken, 1> IdTokenOption;
+
+ struct AuthTokenData {
+ IdTokenOption ident_token;
+ CSI::AuthorizationToken auth_token;
+ ExpiryTime expiry_time;
+ };
+
+ exception IllegalTokenRequest {
+ unsigned long the_errnum;
+ string the_reason;
+ };
+
+ exception TokenOkay {};
+
+ interface AuthTokenDispenser {
+ AuthTokenData get_my_authorization_token ()
+ raises (IllegalTokenRequest);
+
+ AuthTokenData translate_authorization_token (
+ in CSI::IdentityToken the_subject,
+ in CSI::AuthorizationToken the_token)
+ raises (IllegalTokenRequest,
+ TokenOkay);
+ };
+
+ struct CosNamingLocator {
+ CosNaming::NamingContext name_service;
+ CosNaming::Name the_name;
+ };
+
+ //
+ // This type specifies a string encoded in UTF-8 form [IETF RFC 2044].
+ //
+ typedef sequence<octet> UTF8String;
+ typedef CosNaming::NamingContextExt::URLString URLocator;
+
+ typedef unsigned long ATLASLocatorType;
+
+ const ATLASLocatorType ATLASCosNaming = 1;
+ const ATLASLocatorType ATLASURL = 2;
+ const ATLASLocatorType ATLASObject = 3;
+
+ union ATLASLocator switch (ATLASLocatorType)
+ {
+ case ATLASCosNaming: CosNamingLocator naming_locator;
+ case ATLASURL: URLocator the_url;
+ case ATLASObject: AuthTokenDispenser the_depenser;
+ };
+
+ typedef sequence<octet> ATLASCacheId;
+
+ struct ATLASProfile {
+ ATLASLocator the_locator;
+ ATLASCacheId the_cache_id;
+ };
+
+ const CSIIOP::ServiceConfigurationSyntax SCS_ATLAS = 3;
+};
+
+#endif // _ATLAS_IDL_