•
•
•
• The OMG added the CORBA::Current interface to the CORBA module to support the Current pseudo-object. This change enables the CORBA module to support Security Replaceability and Security Level 2.Listing 13‑1 shows the CORBA::Current interface OMG IDL statements.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 15-230. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.Listing 13‑1 CORBA::Current Interface OMG IDL StatementsListing 13‑2 shows the TimeBase module OMG IDL statements.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 14-5. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.Listing 13‑2 TimeBase Module OMG IDL Statements// From time service
module TimeBase {
// interim definition of type ulonglong pending the
// adoption of the type extension by all client ORBs.
struct ulonglong {
unsigned long low;
unsigned long high;
};
typedef ulonglong TimeT;
typedef short TdfT;
struct UtcT {
TimeT time; // 8 octets
unsigned long inacclo; // 4 octets
unsigned short inacchi; // 2 octets
TdfT tdf; // 2 octets
// total 16 octets
};
};Table 13‑1 defines the TimeBase module data types.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 14-6. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.
Table 13‑1 TimeBase Module Data Type Definitions TimeT represents a single time value, which is 64-bit in size, and holds the number of 100 nanoseconds that have passed since the base time. For absolute time, the base is 15 October 1582 00:00. TdfT is of size 16 bits short type and holds the time displacement factor in the form of seconds of displacement from the Greenwich Meridian. Displacements east of the meridian are positive, while those to the west are negative. UtcT defines the structure of the time value that is used universally in the service. When the UtcT structure is holding, a relative or absolute time is determined by its history. There is no explicit flag within the object holding that state information. The inacclo and inacchi fields together hold a value of type InaccuracyT packed into 48 bits. The tdf field holds time zone information. Implementation must place the time displacement factor for the local time zone in this field whenever it creates a Universal Time Object (UTO).Listing 13‑3 shows the data types supported by the Security module.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 15-193 to 15-195. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.Listing 13‑3 Security Module OMG IDL Statements// Authentication method
typedef unsigned long AuthenticationMethod;Table 13‑2 describes the Security module data type.
Table 13‑2 Security Module Data Type Definition Listing 13‑4 shows the Security Level 1 module OMG IDL statements.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 15-198. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.Listing 13‑4 Security Level 1 Module OMG IDL Statementsmodule SecurityLevel1 {
interface Current : CORBA::Current { // PIDL
Security::AttributeList get_attributes(
in Security::AttributeTypeList attributes
);
};
};Listing 13‑5 shows the Security Level 2 module OMG IDL statements.
Note: This information is taken from CORBAservices: Common Object Services Specification, p. 15-198 to 15-200. Revised Edition: March 31, 1995. Updated: November 1997. Used with permission by OMG.Listing 13‑5 Security Level 2 Module OMG IDL Statementsmodule SecurityLevel2 {
// Forward declaration of interfaces
interface PrincipalAuthenticator;
interface Credentials;
interface Current;
// Interface Principal Authenticator
interface PrincipalAuthenticator {
Security::AuthenticationStatus authenticate(
in Security::AuthenticationMethod method,
in string security_name,
in Security::Opaque auth_data,
in Security::AttributeList privileges,
out Credentials creds,
out Security::Opaque continuation_data,
out Security::Opaque auth_specific_data
);
Security::AuthenticationStatus
continue_authentication(
in Security::Opaque response_data,
inout Credentials creds,
out Security::Opaque continuation_data,
out Security::Opaque auth_specific_data
);
};
// Interface Credentials
interface Credentials {
attribute Security::AssociationOptions
invocation_options_supported;
attribute Security::AssociationOptions
invocation_options_required;
Security::AttributeList get_attributes(
in Security::AttributeTypeList attributes
);
boolean is_valid(
out Security::UtcT expiry_time
);
};
// Interface Current derived from SecurityLevel1::Current
// providing additional operations on Current at this
// security level. This is implemented by the ORB.
interface Current : SecurityLevel1::Current { // PIDL
void set_credentials(
in Security::CredentialType cred_type,
in Credentials cred
);
Credentials get_credentials(
in Security::CredentialType cred_type
);
readonly attribute PrincipalAuthenticator
principal_authenticator;
};
};Listing 13‑6 shows the Tobj module OMG IDL statements.Listing 13‑6 Tobj Module OMG IDL Statements//Tobj Specific definitions
//get_auth_type () return values
enum AuthType {
TOBJ_NOAUTH,
TOBJ_SYSAUTH,
TOBJ_APPAUTH
};
typedef sequence<octet> UserAuthData;
interface PrincipalAuthenticator :
SecurityLevel2::PrincipalAuthenticator { // PIDL
AuthType get_auth_type();
Security::AuthenticationStatus logon(
in string user_name,
in string client_name,
in string system_password,
in string user_password,
in UserAuthData user_data
);
void logoff();