Package net.shibboleth.idp.authn.impl
Class ExtractUsernamePasswordFromBasicAuth
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.authn.AbstractAuthenticationAction
net.shibboleth.idp.authn.AbstractExtractionAction
net.shibboleth.idp.authn.impl.ExtractUsernamePasswordFromBasicAuth
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
/**
An action that extracts a username and password from the HTTP
HttpHeaders.AUTHORIZATION header,
creates a UsernamePasswordContext, and attaches it to the AuthenticationContext.- Event:
EventIds.PROCEED_EVENT_ID,AuthnEventIds.NO_CREDENTIALS,AuthnEventIds.INVALID_CREDENTIALS- Precondition:
ProfileRequestContext.getSubcontext(AuthenticationContext.class, false) != null
- Postcondition:
- If getHttpServletRequest() != null, the content of the
HttpHeaders.AUTHORIZATIONheader is parsed and any correctly-encoded information will be attached via aUsernamePasswordContext.
-
Field Summary
FieldsModifier and TypeFieldDescriptionCreation strategy for UsernamePasswordContext.private final org.slf4j.LoggerClass logger. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondecodeCredentials(String encodedCredentials) Decodes the credential string provided in the HTTP header, splits it in to a username and password, and returns them.protected voiddoExecute(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext) Performs this authentication action.protected StringextractCredentials(HttpServletRequest httpRequest) Gets the encoded credentials passed in via theHttpHeaders.AUTHORIZATIONheader.voidsetUsernamePasswordContextCreationStrategy(Function<ProfileRequestContext, UsernamePasswordContext> strategy) Sets the creation strategy for theUsernamePasswordContext.Methods inherited from class net.shibboleth.idp.authn.AbstractExtractionAction
applyTransforms, applyTransforms, setLowercase, setTransforms, setTrim, setUppercase, setUsernameRemappingStrategyMethods inherited from class net.shibboleth.idp.authn.AbstractAuthenticationAction
doExecute, doPreExecute, doPreExecute, setAuthenticationContextLookupStrategyMethods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
contextCreationStrategy
Creation strategy for UsernamePasswordContext.
-
-
Constructor Details
-
ExtractUsernamePasswordFromBasicAuth
public ExtractUsernamePasswordFromBasicAuth()Constructor.
-
-
Method Details
-
setUsernamePasswordContextCreationStrategy
public void setUsernamePasswordContextCreationStrategy(@Nonnull Function<ProfileRequestContext, UsernamePasswordContext> strategy) Sets the creation strategy for theUsernamePasswordContext.- Parameters:
strategy- creation strategy- Since:
- 5.1.3
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext) Performs this authentication action. Default implementation throws an exception.- Overrides:
doExecutein classAbstractAuthenticationAction- Parameters:
profileRequestContext- the current IdP profile request contextauthenticationContext- the current authentication context
-
extractCredentials
Gets the encoded credentials passed in via theHttpHeaders.AUTHORIZATIONheader. This method checks to ensure that the authentication scheme isHttpServletRequest.BASIC_AUTHand then strips off and returns the follow on Base64-encoded credentials.- Parameters:
httpRequest- current HTTP request- Returns:
- the Base64 encoded credentials, or null
-
decodeCredentials
@Nullable protected Pair<String,String> decodeCredentials(@Nonnull @NotEmpty String encodedCredentials) Decodes the credential string provided in the HTTP header, splits it in to a username and password, and returns them.- Parameters:
encodedCredentials- the Base64 encoded credentials- Returns:
- a pair containing the username and password, respectively, or null
-