module SecurityLevel2 {
interface Credentials {// Locality Constrained
Credentials copy ();
void destroy();
void set_security_features (
in Security::CommunicationDirection direction,
in Security::SecurityFeatureValueList security_features); //
veja abaixo
Security::SecurityFeatureValueList get_security_features (
in Security::CommunicationDirection direction);
boolean set_privileges (
in boolean force_commit,
in Security::AttributeList requested_privileges,
out Security::AttributeList actual_privileges);
Security::AttributeList get_attributes (
in Security::AttributeTypeList attributes);
boolean is_valid (out Security::UtcT expiry_time); // note o out
boolean refresh(); // permite que a aplicação renove a credencial
};
typedef sequence <Credentials> CredentialsList;
enum SecurityFeature {
SecNoDelegation,
SecSimpleDelegation,
SecCompositeDelegation,
SecNoProtection,
SecIntegrity,
SecConfidentiality,
SecIntegrityAndConfidentiality,
SecDetectReplay,
SecDetectMisordering,
SecEstablishTrustInTarget
};