SAP ABAP Class CL_ABSTRACT_SAML_PROTOCOL (Base class for processing SAML protocol messages)
Hierarchy
SAP_BASIS (Software Component) SAP Basis Component
   BC-SEC-LGN-SML (Application Component) SAML 2.0
     SAML2_API (Package) SAML2::API for SAML authentication
Meta Relationship - Using
# Relationship type Using Short Description Created on
1 Interface implementation (CLASS c. INTERFACES i_ref)  IF_SAML20_CONSTANTS Constants Within SAML2 20120127
Meta Relationship - Used By
# Relationship type Used by Short Description Created on
1 Inheritance (c INHERITING FROM c_ref)  CL_ABSTRACT_SAML_ASSERTION Base class for SAML assertions 20120127
Properties
Class CL_ABSTRACT_SAML_PROTOCOL  
Short Description Base class for processing SAML protocol messages    
Super Class    
Instantiability of a Class 2  Public 
Final    
General Data
Message Class    
Program status P  SAP Standard Production Program 
Category 0   
Package SAML2_API   SAML2::API for SAML authentication 
Created 20111215   SAP 
Last change 20130531   SAP 
Shared Memory-enabled    
Fixed point arithmetic    
Unicode checks active    
Forward declarations
# Type group / Object type Type Type Description
1 ABAP Type group use (TYPE-POOLS tp)  Type group use (TYPE-POOLS tp)
Interfaces
# Interface Abstract Final Description Created on
1 IF_SAML20_CONSTANTS Constants Within SAML2 20120127
Friends
Class CL_ABSTRACT_SAML_PROTOCOL has no friend class.
Attributes
# Attribute Level Visibility Read only Typing Associated Type Initial Value Description Created on
1 CO_ENCRYPTED_DATA Constant Protected Type reference (TYPE) STRING 'EncryptedData' 20120127
2 CO_PSE_CONTEXT Constant Protected Type reference (TYPE) PSECONTEXT 'SSFA' Application Context of a PSE 20120127
3 CO_XML_ID Constant Protected Type reference (TYPE) XSTRING '4944' 20120127
4 CO_XML_ID_SAML Constant Protected Type reference (TYPE) XSTRING '417373657274696F6E4944' 20120127
5 MO_SIGNATURE Instance attribute Protected Object reference (TYPE REF TO) XSDANY XML Fragment 20120127
6 MO_TRACE Instance attribute Protected Object reference (TYPE REF TO) CL_SAML20_TRACE SAML 2.0 Tracing 20120127
7 MS_ISSUER Instance attribute Protected Type reference (TYPE) SAML2_NAME_ID Structure for SAML 2.0 Type: NameIDType 20120127
8 MT_PARSED_DATA Instance attribute Protected Type reference (TYPE) ABAP_TRANS_RESBIND_TAB 20120127
9 MV_CLIENT Instance attribute Protected Type reference (TYPE) MANDT The execution client (for trace purposes) 20120127
10 MV_CONF_DECR_SSF_APPLICATION Instance attribute Protected Type reference (TYPE) SSFAPPL 20120127
11 MV_CURRENT_SERVER_TIMESTAMP Instance attribute Protected Type reference (TYPE) TIMESTAMP UTC time stamp in short form (YYYYMMDDhhmmss) 20120127
12 MV_DECRYPTED_MESSAGE Instance attribute Protected Type reference (TYPE) XSTRING 20120127
13 MV_RAW_XML Instance attribute Protected Type reference (TYPE) XSTRING XML to parse 20120127
14 MV_TRANSFORMATION Instance attribute Protected Type reference (TYPE) CXSLTDESC Transformation name 20120127
15 MV_VERSION Instance attribute Protected Type reference (TYPE) STRING 20120127
Methods
# Method Level Visibility Method type Description Created on
1 CHECK_IF_CONSUMED Static method Public Method Checks if this SAML Assertion was consumed 20120418
2 CLEAR_EXPIRED_ASSERTIONS Static method Public Method Clears all expired assertions 20120418
3 CONCATENATE_NESTED_EXC_TEXTS Instance method Private Method Loops to nested exceptions and concatenates their texts 20120127
4 CONSTRUCTOR Instance method Public Constructor CONSTRUCTOR 20120127
5 CONSUME_ASSERTION Static method Public Method Consumes SAML Assertion 20120418
6 DECRYPT Instance method Protected Method Decrypts encrypted parts 20120127
7 GET_XML Instance method Protected Method Gets the raw xml. If encrypted gets it decrypted 20120127
8 PARSE_MESSAGE Instance method Protected Method Parses the provided SAML XML protocol message 20120127
9 PARSE_XML_ELEMENT Instance method Protected Method Parses provided sub element of the message 20120127
10 SET_ABSTRACT_MEMBERS Instance method Protected Method Sets abstract members to specific structure after parsing 20120127
11 SET_DATA_REFERENCE Instance method Protected Method Sets references to specific structure before parsing 20120127
12 TRACE_RAW_XML Instance method Protected Method Traces the raw (unmodified) XML 20120127
13 VALIDATE Instance method Public Method Validates SAML XML 20120127
14 VALIDATE_CRYPTO_REQUIREMENTS Instance method Protected Method Check if the XML complies with the provided crypt options 20120127
15 VALIDATE_HASH_ALGORITHMS Instance method Private Method Validate hash algorithms of each message digest 20120127
16 VALIDATE_ISSUER Instance method Protected Method Validates the assertion issuer 20120127
17 VALIDATE_VERSION Instance method Protected Method Validates the SAML version 20120127
18 VERIFY_STRING_SIGNATURE Instance method Protected Method Verifies the signature of the given string 20120127
19 VERIFY_XML_SIGNATURE Instance method Protected Method Verifies the signature of the given XML fragment 20120127
20 VERIFY_XML_SIGNATURE_SEC_SIGN Instance method Private Method Verify XML signature with secondary signing certificate 20120127
Events
Class CL_ABSTRACT_SAML_PROTOCOL has no event.
Types
Class CL_ABSTRACT_SAML_PROTOCOL has no local type.
Method Signatures

Method CHECK_IF_CONSUMED Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_CLIENT Call by reference Type reference (TYPE) MANDT Client 20120419
2 Importing IV_IDENTIFIER Call by reference Type reference (TYPE) STRING Assertion Id 20120418
3 Importing IV_ISSUER Call by reference Type reference (TYPE) STRING Assertion Issuer 20120418
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120418

Method CLEAR_EXPIRED_ASSERTIONS Signature

Method CLEAR_EXPIRED_ASSERTIONS on class CL_ABSTRACT_SAML_PROTOCOL has no parameter.
Method CLEAR_EXPIRED_ASSERTIONS on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method CONCATENATE_NESTED_EXC_TEXTS Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IX_ROOT Call by reference Object reference (TYPE REF TO) CX_ROOT Abstract Superclass for All Global Exceptions 20120127
2 Returning RV_CONCATENATED_TEXT Value transfer Type reference (TYPE) STRING 20120127

Method CONCATENATE_NESTED_EXC_TEXTS on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method CONSTRUCTOR Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_CLIENT Call by reference Type reference (TYPE) MANDT Client test for translation (to be deleted!) 20120127

Method CONSTRUCTOR on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method CONSUME_ASSERTION Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_CLIENT Call by reference Type reference (TYPE) MANDT Client 20120419
2 Importing IV_CLOCKSKEW Call by reference Type reference (TYPE) I 360 Configuration clockskew 20120418
3 Importing IV_IDENTIFIER Call by reference Type reference (TYPE) STRING Assertion id 20120418
4 Importing IV_ISSUER Call by reference Type reference (TYPE) STRING Issuer of this assertion 20120418
5 Importing IV_VALID_TO Call by reference Type reference (TYPE) SAML2_ASSERTION_VALID_TO Validity of an SAML2 Assertion 20120418

Method CONSUME_ASSERTION on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method DECRYPT Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_DECRYPTION_SSF_APPLICATION Call by reference Type reference (TYPE) SSFAPPL SSF application to use for decryption 20120127
2 Importing IV_IS_ROOT_XML_ELEMENT Call by reference Type reference (TYPE) SAML2_BOOLEAN ABAP_TRUE Whether XML is the whole protocol message or nested element 20120127
3 Importing IV_XML Call by reference Type reference (TYPE) XSTRING XML protocol message part to decrypt 20120127
4 Returning RV_DECRYPTED_XML Value transfer Type reference (TYPE) XSTRING 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Raises an exception if decrypt fails (CX_SEC_SXML_ERROR) 20120127

Method GET_XML Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Returning RV_XML Value transfer Type reference (TYPE) XSTRING 20120127

Method GET_XML on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method PARSE_MESSAGE Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_XML Call by reference Type reference (TYPE) XSTRING The SAML protocol message in XML format 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Raises an exception in case of error 20120127

Method PARSE_XML_ELEMENT Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_TRANSFORMATION Call by reference Type reference (TYPE) CXSLTDESC Name of an XSLT Program 20120127
2 Importing IV_XML_ELEMENT Call by reference Type reference (TYPE) XSTRING 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method SET_ABSTRACT_MEMBERS Signature

Method SET_ABSTRACT_MEMBERS on class CL_ABSTRACT_SAML_PROTOCOL has no parameter.
Method SET_ABSTRACT_MEMBERS on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method SET_DATA_REFERENCE Signature

Method SET_DATA_REFERENCE on class CL_ABSTRACT_SAML_PROTOCOL has no parameter.
Method SET_DATA_REFERENCE on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method TRACE_RAW_XML Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_XML Call by reference Type reference (TYPE) XSTRING Optional XML to be traced instead of the original one 20120127

Method TRACE_RAW_XML on class CL_ABSTRACT_SAML_PROTOCOL has no exception.

Method VALIDATE Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IT_SUBELEMENTS Call by reference Type reference (TYPE) SAML_ELEMENT_T List of sub-elements that must be signed or encrypted 20120127
2 Importing IT_SUPPORTED_HASH_ALGORITHMS Call by reference Type reference (TYPE) SAML2_HASH_ALGORITHM_T Supported hash algorithms for signature verification 20120306
3 Importing IV_ISSUER Call by reference Type reference (TYPE) STRING XML issuer 20120127
4 Importing IV_MUST_BE_CONSUMED Call by reference Type reference (TYPE) SAML2_BOOLEAN True if the assertion must be consumed after validation 20120417
5 Importing IV_MUST_BE_ENCRYPTED Call by reference Type reference (TYPE) SAML2_BOOLEAN Option whether XML must be encrypted 20120127
6 Importing IV_MUST_BE_SIGNED Call by reference Type reference (TYPE) SAML2_BOOLEAN Option whether XML must be signed 20120127
7 Importing IV_VERSION Call by reference Type reference (TYPE) SAML_VERSION SAML version 20120127
8 Importing IV_XML Call by reference Type reference (TYPE) XSTRING Raw XML message 20120306
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VALIDATE_CRYPTO_REQUIREMENTS Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IT_SUBELEMENTS Call by reference Type reference (TYPE) SAML_ELEMENT_T List of sub-elements that must be signed or encrypted 20120127
2 Importing IV_MUST_BE_ENCRYPTED Call by reference Type reference (TYPE) SAML2_BOOLEAN Option whether XML must be encrypted 20120127
3 Importing IV_MUST_BE_SIGNED Call by reference Type reference (TYPE) SAML2_BOOLEAN Option whether XML must be signed 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VALIDATE_HASH_ALGORITHMS Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IT_DSIGINFO_TABLE Call by reference Type reference (TYPE) SEC_XML_DSIG_INFO_TAB Parsed dSigInfo elements from Signature element 20120127
2 Importing IT_SUPPORTED_HASH_ALGORITHMS Call by reference Type reference (TYPE) SAML2_HASH_ALGORITHM_T List of supported digest algorithms 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VALIDATE_ISSUER Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_ISSUER Call by reference Type reference (TYPE) STRING XML issuer 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VALIDATE_VERSION Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_VERSION Call by reference Type reference (TYPE) SAML_VERSION SAML version 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VERIFY_STRING_SIGNATURE Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IV_CHECK_WITH_SEC_SIGN_CERT Call by reference Type reference (TYPE) SAML2_BOOLEAN ABAP_FALSE Option to check with secondary sign certificate 20120127
2 Importing IV_SEC_SIGN_VALIDATION_CERT Call by reference Type reference (TYPE) XSTRING Secondary certificate to validate with 20120127
3 Importing IV_SIGNATURE Call by reference Type reference (TYPE) STRING Signature URL parameter 20120127
4 Importing IV_SIGNATURE_SSF_APPLICATION Call by reference Type reference (TYPE) SSFAPPL SSF application related to a signature PSE 20120127
5 Importing IV_SIGNATURE_VALIDATION_CERT Call by reference Type reference (TYPE) XSTRING X509 certificate to validate with 20120127
6 Importing IV_SIGNED_STRING Call by reference Type reference (TYPE) STRING Signed URL string 20120127
7 Importing IV_SIGN_ALG Call by reference Type reference (TYPE) STRING Signature algorithm 20120127
8 Returning RV_SUCCESSFULLY_VERIFIED Value transfer Type reference (TYPE) SAML2_BOOLEAN True if the input is suceessfully verified, otherwise false 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VERIFY_XML_SIGNATURE Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IT_SUPPORTED_HASH_ALGORITHMS Call by reference Type reference (TYPE) SAML2_HASH_ALGORITHM_T List of supported digest algorithms 20120127
2 Importing IV_CHECK_WITH_SEC_SIGN_CERT Call by reference Type reference (TYPE) SAML2_BOOLEAN ABAP_FALSE Option to check with secondary sign certificate 20120127
3 Importing IV_SEC_SIGN_VALIDATION_CERT Call by reference Type reference (TYPE) XSTRING Secondary certificate to validate with 20120127
4 Importing IV_SIGNATURE_SSF_APPLICATION Call by reference Type reference (TYPE) SSFAPPL SSF application related to a signature PSE 20120127
5 Importing IV_SIGNATURE_VALIDATION_CERT Call by reference Type reference (TYPE) XSTRING X509 certificate to validate with 20120127
6 Importing IV_SIGNED_XML Call by reference Type reference (TYPE) XSTRING X509 certificate to validate with 20120127
7 Returning RV_SUCCESSFULLY_VERIFIED Value transfer Type reference (TYPE) SAML2_BOOLEAN True if the input is successfully validated, otherwise false 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127

Method VERIFY_XML_SIGNATURE_SEC_SIGN Signature

# Type Parameter Pass Value Optional Typing Method Associated Type Default value Description Created on
1 Importing IT_SUPPORTED_HASH_ALGORITHMS Call by reference Type reference (TYPE) SAML2_HASH_ALGORITHM_T List of supported digest algorithms 20120127
2 Importing IV_SEC_SIGN_VALIDATION_CERT Call by reference Type reference (TYPE) XSTRING 20120127
3 Importing IV_SIGNATURE_SSF_APPLICATION Call by reference Type reference (TYPE) SSFAPPL 20120127
4 Importing IV_SIGNED_XML Call by reference Type reference (TYPE) XSTRING 20120127
5 Importing IX_ROOT Call by reference Object reference (TYPE REF TO) CX_ROOT Abstract Superclass for All Global Exceptions 20120127
6 Returning RV_IS_APPLICABLE Value transfer Type reference (TYPE) SAML2_BOOLEAN Secondary signing key is applicable 20120127
# Exception Resumable Description Created on
1 CX_SAML20_CORE Exceptions Within SAML2 Core Function 20120127
History
Last changed by/on SAP  20130531 
SAP Release Created in 732