[java-identity-provider COMMIT] in /trunk/idp-authn-impl/src: main/java/net/shibboleth/idp/authn/impl/ExtractUsername...
noreply at shibboleth.net
noreply at shibboleth.net
Mon Jul 29 17:00:42 EDT 2013
Author: scantor
Date: Mon Jul 29 17:00:41 2013
New Revision: 4629
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4629&view=rev
Log:
IDP-293: basic-auth extractor
Added:
trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java
- copied, changed from r4617, trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthorizationHeader.java
trunk/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthTest.java (with props)
Modified:
trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthorizationHeader.java
Copied: trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java (from r4617, trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthorizationHeader.java)
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java?p2=trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java&p1=trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthorizationHeader.java&r1=4617&r2=4629&rev=4629&view=diff
==============================================================================
--- trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuthorizationHeader.java (original)
+++ trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java Mon Jul 29 17:00:41 2013
@@ -20,48 +20,73 @@
import java.util.Enumeration;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
import net.shibboleth.idp.authn.AuthenticationException;
+import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.UsernamePasswordContext;
-import net.shibboleth.idp.profile.ActionSupport;
+import org.opensaml.profile.action.ActionSupport;
import org.opensaml.profile.context.ProfileRequestContext;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.codec.Base64Support;
import net.shibboleth.utilities.java.support.collection.Pair;
-import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import org.springframework.webflow.execution.Event;
-import org.springframework.webflow.execution.RequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Charsets;
import com.google.common.net.HttpHeaders;
/**
- * A stage that extracts a username and password from the HTTP {@link HttpHeaders#AUTHORIZATION} header. This stage
- * would generally be used after the {@link SendBasicHttpAuthenticationChallenge} but should be usable by anything that
- * properly populates the HTTP header.
+/**
+ * An action that extracts a username and password from the HTTP {@link HttpHeaders#AUTHORIZATION} header,
+ * creates a {@link UsernamePasswordContext}, and attaches it to the {@link AuthenticationContext}.
+ *
+ * @event {@link org.opensaml.profile.action.EventIds#PROCEED_EVENT_ID}
+ * @event {@link AuthnEventIds#NO_CREDENTIALS}
+ * @event {@link AuthnEventIds#INVALID_CREDENTIALS}
+ * @pre <pre>ProfileRequestContext.getSubcontext(AuthenticationContext.class, false) != null</pre>
+ * @post If ProfileRequestContext.getHttpRequest() != null, the content of the {@link HttpHeaders#AUTHORIZATION}
+ * header is parsed and any correctly-encoded information will be attached via a {@link UsernamePasswordContext}.
*/
-public class ExtractUsernamePasswordFromBasicAuthorizationHeader extends AbstractAuthenticationAction {
+public class ExtractUsernamePasswordFromBasicAuth extends AbstractAuthenticationAction {
+ /** Class logger. */
+ private final Logger log = LoggerFactory.getLogger(ExtractUsernamePasswordFromBasicAuth.class);
+
/** {@inheritDoc} */
- protected Event doExecute(@Nonnull final RequestContext springRequestContext,
- @Nonnull final ProfileRequestContext profileRequestContext,
+ protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext,
@Nonnull final AuthenticationContext authenticationContext) throws AuthenticationException {
- final String encodedCredentials = extractAuthorizationCredentials(
- Constraint.isNotNull(profileRequestContext.getHttpRequest(), "HttpServletRequest cannot be null"));
- final Pair<String, String> decodedCredentials = decodeAuthorizationCredentials(encodedCredentials);
-
+ final HttpServletRequest request = profileRequestContext.getHttpRequest();
[... 132 lines stripped ...]
More information about the commits
mailing list