Package net.shibboleth.idp.authn.impl
Class ExtractUsernamePasswordFromBasicAuth
- java.lang.Object
-
- net.shibboleth.utilities.java.support.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
public class ExtractUsernamePasswordFromBasicAuth extends AbstractExtractionAction
/** An action that extracts a username and password from the HTTPHttpHeaders.AUTHORIZATIONheader, creates aUsernamePasswordContext, and attaches it to theAuthenticationContext.- 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 Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.
-
Constructor Summary
Constructors Constructor Description ExtractUsernamePasswordFromBasicAuth()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Pair<String,String>decodeCredentials(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)protected StringextractCredentials(javax.servlet.http.HttpServletRequest httpRequest)Gets the encoded credentials passed in via theHttpHeaders.AUTHORIZATIONheader.-
Methods inherited from class net.shibboleth.idp.authn.AbstractExtractionAction
applyTransforms, setLowercase, setTransforms, setTrim, setUppercase
-
Methods inherited from class net.shibboleth.idp.authn.AbstractAuthenticationAction
doExecute, doPreExecute, doPreExecute, setAuthenticationContextLookupStrategy
-
Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getMessage, getMessage, getMessage, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
-
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
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Method Detail
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext)- Overrides:
doExecutein classAbstractAuthenticationAction
-
extractCredentials
@Nullable protected String extractCredentials(@Nonnull javax.servlet.http.HttpServletRequest httpRequest)
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
-
-