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 | 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 | Constant | Protected | Type reference (TYPE) | STRING | 'EncryptedData' | 20120127 | |||
| 2 | Constant | Protected | Type reference (TYPE) | PSECONTEXT | 'SSFA' | Application Context of a PSE | 20120127 | ||
| 3 | Constant | Protected | Type reference (TYPE) | XSTRING | '4944' | 20120127 | |||
| 4 | Constant | Protected | Type reference (TYPE) | XSTRING | '417373657274696F6E4944' | 20120127 | |||
| 5 | Instance attribute | Protected | Object reference (TYPE REF TO) | XSDANY | XML Fragment | 20120127 | |||
| 6 | Instance attribute | Protected | Object reference (TYPE REF TO) | CL_SAML20_TRACE | SAML 2.0 Tracing | 20120127 | |||
| 7 | Instance attribute | Protected | Type reference (TYPE) | SAML2_NAME_ID | Structure for SAML 2.0 Type: NameIDType | 20120127 | |||
| 8 | Instance attribute | Protected | Type reference (TYPE) | ABAP_TRANS_RESBIND_TAB | 20120127 | ||||
| 9 | Instance attribute | Protected | Type reference (TYPE) | MANDT | The execution client (for trace purposes) | 20120127 | |||
| 10 | Instance attribute | Protected | Type reference (TYPE) | SSFAPPL | 20120127 | ||||
| 11 | Instance attribute | Protected | Type reference (TYPE) | TIMESTAMP | UTC time stamp in short form (YYYYMMDDhhmmss) | 20120127 | |||
| 12 | Instance attribute | Protected | Type reference (TYPE) | XSTRING | 20120127 | ||||
| 13 | Instance attribute | Protected | Type reference (TYPE) | XSTRING | XML to parse | 20120127 | |||
| 14 | Instance attribute | Protected | Type reference (TYPE) | CXSLTDESC | Transformation name | 20120127 | |||
| 15 | Instance attribute | Protected | Type reference (TYPE) | STRING | 20120127 |
Methods
| # | Method | Level | Visibility | Method type | Description | Created on |
|---|---|---|---|---|---|---|
| 1 | Static method | Public | Method | Checks if this SAML Assertion was consumed | 20120418 | |
| 2 | Static method | Public | Method | Clears all expired assertions | 20120418 | |
| 3 | Instance method | Private | Method | Loops to nested exceptions and concatenates their texts | 20120127 | |
| 4 | Instance method | Public | Constructor | CONSTRUCTOR | 20120127 | |
| 5 | Static method | Public | Method | Consumes SAML Assertion | 20120418 | |
| 6 | Instance method | Protected | Method | Decrypts encrypted parts | 20120127 | |
| 7 | Instance method | Protected | Method | Gets the raw xml. If encrypted gets it decrypted | 20120127 | |
| 8 | Instance method | Protected | Method | Parses the provided SAML XML protocol message | 20120127 | |
| 9 | Instance method | Protected | Method | Parses provided sub element of the message | 20120127 | |
| 10 | Instance method | Protected | Method | Sets abstract members to specific structure after parsing | 20120127 | |
| 11 | Instance method | Protected | Method | Sets references to specific structure before parsing | 20120127 | |
| 12 | Instance method | Protected | Method | Traces the raw (unmodified) XML | 20120127 | |
| 13 | Instance method | Public | Method | Validates SAML XML | 20120127 | |
| 14 | Instance method | Protected | Method | Check if the XML complies with the provided crypt options | 20120127 | |
| 15 | Instance method | Private | Method | Validate hash algorithms of each message digest | 20120127 | |
| 16 | Instance method | Protected | Method | Validates the assertion issuer | 20120127 | |
| 17 | Instance method | Protected | Method | Validates the SAML version | 20120127 | |
| 18 | Instance method | Protected | Method | Verifies the signature of the given string | 20120127 | |
| 19 | Instance method | Protected | Method | Verifies the signature of the given XML fragment | 20120127 | |
| 20 | 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 | IV_CLIENT | Call by reference | Type reference (TYPE) | MANDT | Client | 20120419 | |||
| 2 | IV_IDENTIFIER | Call by reference | Type reference (TYPE) | STRING | Assertion Id | 20120418 | |||
| 3 | IV_ISSUER | Call by reference | Type reference (TYPE) | STRING | Assertion Issuer | 20120418 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | IX_ROOT | Call by reference | Object reference (TYPE REF TO) | CX_ROOT | Abstract Superclass for All Global Exceptions | 20120127 | |||
| 2 | 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 | 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 | IV_CLIENT | Call by reference | Type reference (TYPE) | MANDT | Client | 20120419 | |||
| 2 | IV_CLOCKSKEW | Call by reference | Type reference (TYPE) | I | 360 | Configuration clockskew | 20120418 | ||
| 3 | IV_IDENTIFIER | Call by reference | Type reference (TYPE) | STRING | Assertion id | 20120418 | |||
| 4 | IV_ISSUER | Call by reference | Type reference (TYPE) | STRING | Issuer of this assertion | 20120418 | |||
| 5 | 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 | IV_DECRYPTION_SSF_APPLICATION | Call by reference | Type reference (TYPE) | SSFAPPL | SSF application to use for decryption | 20120127 | |||
| 2 | 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 | IV_XML | Call by reference | Type reference (TYPE) | XSTRING | XML protocol message part to decrypt | 20120127 | |||
| 4 | RV_DECRYPTED_XML | Value transfer | Type reference (TYPE) | XSTRING | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | 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 | IV_XML | Call by reference | Type reference (TYPE) | XSTRING | The SAML protocol message in XML format | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | IV_TRANSFORMATION | Call by reference | Type reference (TYPE) | CXSLTDESC | Name of an XSLT Program | 20120127 | |||
| 2 | IV_XML_ELEMENT | Call by reference | Type reference (TYPE) | XSTRING | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | 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 | IT_SUBELEMENTS | Call by reference | Type reference (TYPE) | SAML_ELEMENT_T | List of sub-elements that must be signed or encrypted | 20120127 | |||
| 2 | IT_SUPPORTED_HASH_ALGORITHMS | Call by reference | Type reference (TYPE) | SAML2_HASH_ALGORITHM_T | Supported hash algorithms for signature verification | 20120306 | |||
| 3 | IV_ISSUER | Call by reference | Type reference (TYPE) | STRING | XML issuer | 20120127 | |||
| 4 | IV_MUST_BE_CONSUMED | Call by reference | Type reference (TYPE) | SAML2_BOOLEAN | True if the assertion must be consumed after validation | 20120417 | |||
| 5 | IV_MUST_BE_ENCRYPTED | Call by reference | Type reference (TYPE) | SAML2_BOOLEAN | Option whether XML must be encrypted | 20120127 | |||
| 6 | IV_MUST_BE_SIGNED | Call by reference | Type reference (TYPE) | SAML2_BOOLEAN | Option whether XML must be signed | 20120127 | |||
| 7 | IV_VERSION | Call by reference | Type reference (TYPE) | SAML_VERSION | SAML version | 20120127 | |||
| 8 | IV_XML | Call by reference | Type reference (TYPE) | XSTRING | Raw XML message | 20120306 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | IT_SUBELEMENTS | Call by reference | Type reference (TYPE) | SAML_ELEMENT_T | List of sub-elements that must be signed or encrypted | 20120127 | |||
| 2 | IV_MUST_BE_ENCRYPTED | Call by reference | Type reference (TYPE) | SAML2_BOOLEAN | Option whether XML must be encrypted | 20120127 | |||
| 3 | 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 | 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 | IT_DSIGINFO_TABLE | Call by reference | Type reference (TYPE) | SEC_XML_DSIG_INFO_TAB | Parsed dSigInfo elements from Signature element | 20120127 | |||
| 2 | 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 | 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 | IV_ISSUER | Call by reference | Type reference (TYPE) | STRING | XML issuer | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | IV_VERSION | Call by reference | Type reference (TYPE) | SAML_VERSION | SAML version | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | 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 | 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 | IV_SEC_SIGN_VALIDATION_CERT | Call by reference | Type reference (TYPE) | XSTRING | Secondary certificate to validate with | 20120127 | |||
| 3 | IV_SIGNATURE | Call by reference | Type reference (TYPE) | STRING | Signature URL parameter | 20120127 | |||
| 4 | IV_SIGNATURE_SSF_APPLICATION | Call by reference | Type reference (TYPE) | SSFAPPL | SSF application related to a signature PSE | 20120127 | |||
| 5 | IV_SIGNATURE_VALIDATION_CERT | Call by reference | Type reference (TYPE) | XSTRING | X509 certificate to validate with | 20120127 | |||
| 6 | IV_SIGNED_STRING | Call by reference | Type reference (TYPE) | STRING | Signed URL string | 20120127 | |||
| 7 | IV_SIGN_ALG | Call by reference | Type reference (TYPE) | STRING | Signature algorithm | 20120127 | |||
| 8 | 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 | 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 | IT_SUPPORTED_HASH_ALGORITHMS | Call by reference | Type reference (TYPE) | SAML2_HASH_ALGORITHM_T | List of supported digest algorithms | 20120127 | |||
| 2 | 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 | IV_SEC_SIGN_VALIDATION_CERT | Call by reference | Type reference (TYPE) | XSTRING | Secondary certificate to validate with | 20120127 | |||
| 4 | IV_SIGNATURE_SSF_APPLICATION | Call by reference | Type reference (TYPE) | SSFAPPL | SSF application related to a signature PSE | 20120127 | |||
| 5 | IV_SIGNATURE_VALIDATION_CERT | Call by reference | Type reference (TYPE) | XSTRING | X509 certificate to validate with | 20120127 | |||
| 6 | IV_SIGNED_XML | Call by reference | Type reference (TYPE) | XSTRING | X509 certificate to validate with | 20120127 | |||
| 7 | 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 | 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 | IT_SUPPORTED_HASH_ALGORITHMS | Call by reference | Type reference (TYPE) | SAML2_HASH_ALGORITHM_T | List of supported digest algorithms | 20120127 | |||
| 2 | IV_SEC_SIGN_VALIDATION_CERT | Call by reference | Type reference (TYPE) | XSTRING | 20120127 | ||||
| 3 | IV_SIGNATURE_SSF_APPLICATION | Call by reference | Type reference (TYPE) | SSFAPPL | 20120127 | ||||
| 4 | IV_SIGNED_XML | Call by reference | Type reference (TYPE) | XSTRING | 20120127 | ||||
| 5 | IX_ROOT | Call by reference | Object reference (TYPE REF TO) | CX_ROOT | Abstract Superclass for All Global Exceptions | 20120127 | |||
| 6 | RV_IS_APPLICABLE | Value transfer | Type reference (TYPE) | SAML2_BOOLEAN | Secondary signing key is applicable | 20120127 |
| # | Exception | Resumable | Description | Created on |
|---|---|---|---|---|
| 1 | Exceptions Within SAML2 Core Function | 20120127 |
History
| Last changed by/on | SAP | 20130531 |
| SAP Release Created in | 732 |