Class SAMLDecryptionKeysLocator

java.lang.Object
org.keycloak.protocol.saml.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 Details

    • SAMLDecryptionKeysLocator

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

    • 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