diff options
Diffstat (limited to 'ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl')
-rw-r--r-- | ACE/TAO/orbsvcs/orbsvcs/ATLAS.idl | 88 |
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_ |