Class DecryptAttributes

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction

public class DecryptAttributes
extends AbstractDecryptAction
Action to decrypt an EncryptedAttribute element and replace it with the decrypted Attribute in situ.

All of the built-in SAML message types that may include an EncryptedAttribute are potentially handled, but the actual message to handle is obtained via strategy function, by default the inbound message.

Event:
EventIds.PROCEED_EVENT_ID, SAMLEventIds.DECRYPT_ATTRIBUTE_FAILED
  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
  • Constructor Details

    • DecryptAttributes

      public DecryptAttributes()
  • Method Details

    • doExecute

      protected void doExecute​(@Nonnull ProfileRequestContext profileRequestContext)
      Performs this action. Actions must override this method to perform their work.
      Overrides:
      doExecute in class AbstractProfileAction
      Parameters:
      profileRequestContext - the current IdP profile request context
    • processEncryptedAttribute

      @Nullable private Attribute processEncryptedAttribute​(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull EncryptedAttribute encAttr) throws DecryptionException
      Decrypt an EncryptedAttribute and return the result.
      Parameters:
      profileRequestContext - current profile request context
      encAttr - the encrypted object
      Returns:
      the decrypted attribute, or null if the object did not need decryption
      Throws:
      DecryptionException - if an error occurs during decryption
    • processAssertion

      private void processAssertion​(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull Assertion assertion) throws DecryptionException
      Decrypt any EncryptedAttribute found in an assertion and replace it with the result.
      Parameters:
      profileRequestContext - current profile request context
      assertion - assertion to operate on
      Throws:
      DecryptionException - if an error occurs