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
Fields -
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.Methods inherited from class net.shibboleth.idp.authn.AbstractExtractionAction
applyTransforms, setLowercase, setTransforms, setTrim, setUppercaseMethods 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.
-
-
Constructor Details
-
ExtractUsernamePasswordFromBasicAuth
public ExtractUsernamePasswordFromBasicAuth()
-
-
Method Details
-
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
-