Class EncryptNameIDs
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.profile.action.AbstractProfileAction
-
- org.opensaml.profile.action.AbstractConditionalProfileAction
-
- org.opensaml.saml.saml2.profile.impl.AbstractEncryptAction
-
- org.opensaml.saml.saml2.profile.impl.EncryptNameIDs
-
- All Implemented Interfaces:
net.shibboleth.utilities.java.support.component.Component,net.shibboleth.utilities.java.support.component.DestructableComponent,net.shibboleth.utilities.java.support.component.InitializableComponent,org.opensaml.profile.action.ProfileAction
public class EncryptNameIDs extends AbstractEncryptAction
Action that encrypts allNameIDs in a message obtained from a lookup strategy, by default the outbound message context.Specific formats may be excluded from encryption, by default excluding the "entity" format.
- Event:
EventIds.PROCEED_EVENT_ID,EventIds.UNABLE_TO_ENCRYPT- Postcondition:
- All SAML
NameIDs in all locations have been replaced with encrypted versions. It's possible for some to be replaced but others not if an error occurs.
-
-
Field Summary
Fields Modifier and Type Field Description private Set<String>excludedFormatsFormats to exclude from encryption.private org.slf4j.LoggerlogClass logger.private org.opensaml.saml.common.SAMLObjectmessageThe message to operate on.private Function<org.opensaml.profile.context.ProfileRequestContext,org.opensaml.saml.common.SAMLObject>messageLookupStrategyStrategy used to locate the message to operate on.
-
Constructor Summary
Constructors Constructor Description EncryptNameIDs()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)protected booleandoPreExecute(org.opensaml.profile.context.ProfileRequestContext profileRequestContext)protected org.opensaml.xmlsec.EncryptionParametersgetApplicableParameters(org.opensaml.saml.saml2.profile.context.EncryptionContext ctx)Return the right set of parameters for the operation to be performed, or none if no encryption should occur.private voidprocessAssertion(org.opensaml.saml.saml2.core.Assertion assertion)Decrypt anyEncryptedIDfound in an assertion and replace it with the result.private voidprocessLogoutRequest(org.opensaml.saml.saml2.core.LogoutRequest request)Encrypt aNameIDfound in a LogoutRequest and replace it with the result.private voidprocessManageNameIDRequest(org.opensaml.saml.saml2.core.ManageNameIDRequest request)Encrypt aNameIDfound in a ManageNameIDRequest and replace it with the result.private voidprocessNameIDMappingRequest(org.opensaml.saml.saml2.core.NameIDMappingRequest request)Encrypt aNameIDfound in a NameIDMappingRequest and replace it with the result.private voidprocessNameIDMappingResponse(org.opensaml.saml.saml2.core.NameIDMappingResponse response)Encrypt aNameIDfound in a NameIDMappingResponse and replace it with the result.private voidprocessSubject(org.opensaml.saml.saml2.core.Subject subject)Encrypt anyNameIDs found in a subject and replace them with the result.voidsetExcludedFormats(Collection<String> formats)Set theNameIDformats to ignore and leave unencrypted.voidsetMessageLookupStrategy(Function<org.opensaml.profile.context.ProfileRequestContext,org.opensaml.saml.common.SAMLObject> strategy)Set the strategy used to locate theResponseto operate on.private booleanshouldEncrypt(org.opensaml.saml.saml2.core.NameID name)Return true iff the NameID should be encrypted.-
Methods inherited from class org.opensaml.saml.saml2.profile.impl.AbstractEncryptAction
getEncrypter, setEncryptionContextLookupStrategy, setEncryptToSelf, setEncryptToSelfParametersStrategy, setKeyPlacementLookupStrategy, setRecipientLookupStrategy, setSelfRecipientLookupStrategy
-
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
-
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
messageLookupStrategy
@Nonnull private Function<org.opensaml.profile.context.ProfileRequestContext,org.opensaml.saml.common.SAMLObject> messageLookupStrategy
Strategy used to locate the message to operate on.
-
excludedFormats
@Nonnull @NonnullElements private Set<String> excludedFormats
Formats to exclude from encryption.
-
message
@Nullable private org.opensaml.saml.common.SAMLObject message
The message to operate on.
-
-
Method Detail
-
setMessageLookupStrategy
public void setMessageLookupStrategy(@Nonnull Function<org.opensaml.profile.context.ProfileRequestContext,org.opensaml.saml.common.SAMLObject> strategy)Set the strategy used to locate theResponseto operate on.- Parameters:
strategy- strategy used to locate theResponseto operate on
-
setExcludedFormats
public void setExcludedFormats(@Nonnull @NonnullElements Collection<String> formats)Set theNameIDformats to ignore and leave unencrypted.- Parameters:
formats- formats to exclude
-
getApplicableParameters
@Nullable protected org.opensaml.xmlsec.EncryptionParameters getApplicableParameters(@Nullable org.opensaml.saml.saml2.profile.context.EncryptionContext ctx)Return the right set of parameters for the operation to be performed, or none if no encryption should occur.- Specified by:
getApplicableParametersin classAbstractEncryptAction- Parameters:
ctx- possibly null input context to pull parameters from- Returns:
- the right parameter set, or null for none
-
doPreExecute
protected boolean doPreExecute(@Nonnull org.opensaml.profile.context.ProfileRequestContext profileRequestContext)- Overrides:
doPreExecutein classAbstractEncryptAction
-
doExecute
protected void doExecute(@Nonnull org.opensaml.profile.context.ProfileRequestContext profileRequestContext)- Overrides:
doExecutein classorg.opensaml.profile.action.AbstractProfileAction
-
shouldEncrypt
private boolean shouldEncrypt(@Nullable org.opensaml.saml.saml2.core.NameID name)Return true iff the NameID should be encrypted.- Parameters:
name- NameID to check- Returns:
- true iff encryption should happen
-
processSubject
private void processSubject(@Nullable org.opensaml.saml.saml2.core.Subject subject) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionEncrypt anyNameIDs found in a subject and replace them with the result.- Parameters:
subject- subject to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
processLogoutRequest
private void processLogoutRequest(@Nonnull org.opensaml.saml.saml2.core.LogoutRequest request) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionEncrypt aNameIDfound in a LogoutRequest and replace it with the result.- Parameters:
request- request to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
processManageNameIDRequest
private void processManageNameIDRequest(@Nonnull org.opensaml.saml.saml2.core.ManageNameIDRequest request) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionEncrypt aNameIDfound in a ManageNameIDRequest and replace it with the result.- Parameters:
request- request to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
processNameIDMappingRequest
private void processNameIDMappingRequest(@Nonnull org.opensaml.saml.saml2.core.NameIDMappingRequest request) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionEncrypt aNameIDfound in a NameIDMappingRequest and replace it with the result.- Parameters:
request- request to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
processNameIDMappingResponse
private void processNameIDMappingResponse(@Nonnull org.opensaml.saml.saml2.core.NameIDMappingResponse response) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionEncrypt aNameIDfound in a NameIDMappingResponse and replace it with the result.- Parameters:
response- response to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
processAssertion
private void processAssertion(@Nonnull org.opensaml.saml.saml2.core.Assertion assertion) throws org.opensaml.xmlsec.encryption.support.EncryptionExceptionDecrypt anyEncryptedIDfound in an assertion and replace it with the result.- Parameters:
assertion- assertion to operate on- Throws:
org.opensaml.xmlsec.encryption.support.EncryptionException- if an error occurs
-
-