Class SAMLDecryptionKeysLocator

  • All Implemented Interfaces:
    org.keycloak.saml.processing.core.util.XMLEncryptionUtil.DecryptionKeyLocator

    public class SAMLDecryptionKeysLocator
    extends Object
    implements org.keycloak.saml.processing.core.util.XMLEncryptionUtil.DecryptionKeyLocator
    This implementation locates the decryption keys within realm keys. It filters realm keys based on algorithm provided within EncryptedData Example of encrypted data:
     
     <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element">
         <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
         <ds:KeyInfo>
             <xenc:EncryptedKey>
                 <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
                 <xenc:CipherData>
                     <xenc:CipherValue>
                         .....
                     </xenc:CipherValue>
                 </xenc:CipherData>
             </xenc:EncryptedKey>
         </ds:KeyInfo>
         <xenc:CipherData>
             <xenc:CipherValue>
                 ...
             </xenc:CipherValue>
         </xenc:CipherData>
     </xenc:EncryptedData>
     
     
    • Constructor Detail

      • SAMLDecryptionKeysLocator

        public SAMLDecryptionKeysLocator​(org.keycloak.models.KeycloakSession session,
                                         org.keycloak.models.RealmModel realm,
                                         String requestedAlgorithm)
    • Method Detail

      • getKeys

        public List<PrivateKey> getKeys​(org.apache.xml.security.encryption.EncryptedData encryptedData)
        Specified by:
        getKeys in interface org.keycloak.saml.processing.core.util.XMLEncryptionUtil.DecryptionKeyLocator