[java-identity-provider COMMIT] in /trunk: idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernam...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Nov 20 11:19:30 EST 2013
Author: scantor
Date: Wed Nov 20 11:19:30 2013
New Revision: 4960
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4960&view=rev
Log:
Allow JAAS validator to run against multiple application names at once.
Modified:
trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernamePasswordAgainstJAAS.java
trunk/idp-conf/src/main/resources/conf/jaas-authn-config.xml
trunk/idp-conf/src/main/resources/system/flows/authn/jaas-basic-authn-beans.xml
trunk/idp-conf/src/main/resources/system/flows/authn/jaas-form-authn-beans.xml
Modified: trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernamePasswordAgainstJAAS.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernamePasswordAgainstJAAS.java?rev=4960&r1=4959&r2=4960&view=diff
==============================================================================
--- trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernamePasswordAgainstJAAS.java (original)
+++ trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ValidateUsernamePasswordAgainstJAAS.java Wed Nov 20 11:19:30 2013
@@ -18,6 +18,8 @@
package net.shibboleth.idp.authn.impl;
import java.security.NoSuchAlgorithmException;
+import java.util.Collections;
+import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -36,9 +38,11 @@
import net.shibboleth.idp.authn.UsernamePrincipal;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.UsernamePasswordContext;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.opensaml.profile.action.ActionSupport;
@@ -46,6 +50,8 @@
import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
/**
* An action that checks for a {@link UsernamePasswordContext} and directly produces an
@@ -77,13 +83,13 @@
/** Type-specific configuration parameters. */
@Nullable private Configuration.Parameters loginConfigParameters;
- /** Application name in JAAS configuration to use. */
- @Nonnull @NotEmpty private String loginConfigName;
+ /** Application name(s) in JAAS configuration to use. */
+ @Nonnull @NonnullElements private List<String> loginConfigNames;
/** Constructor. */
public ValidateUsernamePasswordAgainstJAAS() {
// For compatibility with V2.
- loginConfigName = "ShibUserPassAuth";
+ loginConfigNames = Collections.singletonList("ShibUserPassAuth");
}
/**
@@ -127,23 +133,23 @@
}
/**
- * Get the JAAS application name to use.
- *
- * @return the JAAS application name to use
- */
- @Nonnull @NotEmpty public String getLoginConfigName() {
- return loginConfigName;
- }
-
- /**
- * Set the JAAS application name to use.
- *
- * @param name the JAAS application name to use
- */
- public void setLoginConfigName(@Nonnull @NotEmpty String name) {
+ * Set the JAAS application name(s) to use.
+ *
+ * @param names list of JAAS application names to use
+ */
+ public void setLoginConfigNames(@Nonnull @NonnullElements List<String> names) {
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- loginConfigName = Constraint.isNotNull(StringSupport.trimOrNull(name), "Name cannot be null or empty");
+ loginConfigNames = Lists.newArrayList();
+ for (String name : Constraint.isNotNull(names, "Configuration name list cannot be null")) {
+ String trimmed = StringSupport.trimOrNull(name);
+ if (trimmed != null) {
+ loginConfigNames.add(trimmed);
+ }
+ }
+ if (loginConfigNames.isEmpty()) {
+ throw new ConstraintViolationException("Configuration name list cannot be empty");
+ }
}
/** {@inheritDoc} */
@@ -175,14 +181,18 @@
protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext,
@Nonnull final AuthenticationContext authenticationContext) throws AuthenticationException {
- try {
- log.debug("{} attempting to authenticate user {}", getLogPrefix(), upContext.getUsername());
- authenticate();
- log.debug("{} login by '{}' succeeded", getLogPrefix(), upContext.getUsername());
- buildAuthenticationResult(profileRequestContext, authenticationContext);
- } catch (Exception e) {
[... 96 lines stripped ...]
More information about the commits
mailing list