You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by jh...@apache.org on 2009/03/02 17:39:39 UTC
svn commit: r749350 - in /incubator/jsecurity/trunk: ./ core/src/
core/src/org/jsecurity/authc/pam/ core/src/org/jsecurity/mgt/
core/src/org/jsecurity/realm/ core/src/org/jsecurity/realm/jdbc/
core/src/org/jsecurity/realm/text/ core/test/ core/test/org...
Author: jhaile
Date: Mon Mar 2 16:39:37 2009
New Revision: 749350
URL: http://svn.apache.org/viewvc?rev=749350&view=rev
Log:
Merged changes from the import branch that were accidentally committed into the trunk.
Added:
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AllSuccessfulStrategy.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/src/org/jsecurity/authc/pam/AllSuccessfulStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulStrategy.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AuthenticationStrategy.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/src/org/jsecurity/authc/pam/AuthenticationStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/FirstSuccessfulStrategy.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/src/org/jsecurity/authc/pam/FirstSuccessfulStrategy.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulStrategyTest.java
- copied unchanged from r749341, incubator/jsecurity/import/trunk/test/org/jsecurity/authc/pam/AllSuccessfulStrategyTest.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/BootstrapDataPopulator.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/BootstrapDataPopulator.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/HibernateDao.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/HibernateDao.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/HibernateUserDAO.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/HibernateUserDAO.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/UserDAO.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/dao/UserDAO.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/Role.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/Role.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/User.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/model/User.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/security/SampleRealm.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/security/SampleRealm.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/DefaultUserService.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/DefaultUserService.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/UserService.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/service/UserService.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/CurrentUserInterceptor.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/CurrentUserInterceptor.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/EditUserCommand.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/EditUserCommand.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/EditUserValidator.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/EditUserValidator.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/HomeController.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/HomeController.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/LoginCommand.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/LoginCommand.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/LoginValidator.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/LoginValidator.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/ManageUsersController.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/ManageUsersController.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SecurityController.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SecurityController.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupCommand.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupCommand.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupController.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupController.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupValidator.java
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/web/SignupValidator.java
incubator/jsecurity/trunk/samples/spring-hibernate/web/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/applicationContext.xml
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/applicationContext.xml
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml
- copied, changed from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/hibernate.cfg.xml
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/log4j.properties
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/editUser.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/editUser.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/home.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/home.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/login.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/login.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/manageUsers.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/manageUsers.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/jsp/signup.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/jsp/signup.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/sprhib-servlet.xml
incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/web.xml
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/web.xml
incubator/jsecurity/trunk/samples/spring-hibernate/web/index.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/index.jsp
incubator/jsecurity/trunk/samples/spring-hibernate/web/styles/
- copied from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/styles/
incubator/jsecurity/trunk/samples/spring-hibernate/web/styles/sample.css
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/styles/sample.css
incubator/jsecurity/trunk/samples/spring-hibernate/web/unauthorized.jsp
- copied unchanged from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/unauthorized.jsp
Removed:
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AtLeastOneSuccessfulModularAuthenticationStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/FirstSuccessfulAuthenticationStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularAuthenticationStrategy.java
incubator/jsecurity/trunk/core/test/org/jsecurity/authc/pam/AllSuccessfulModularAuthenticationStrategyTest.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/eis/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/entity/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/party/
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/security/DefaultRealm.java
incubator/jsecurity/trunk/samples/spring-hibernate/src/org/jsecurity/samples/sprhib/security/Role.java
Modified:
incubator/jsecurity/trunk/common.ant.xml
incubator/jsecurity/trunk/core/src/ (props changed)
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java
incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/package-info.java
incubator/jsecurity/trunk/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java
incubator/jsecurity/trunk/core/src/org/jsecurity/realm/SimpleAccountRealm.java
incubator/jsecurity/trunk/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java
incubator/jsecurity/trunk/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java
incubator/jsecurity/trunk/core/test/ (props changed)
incubator/jsecurity/trunk/ivy.xml (contents, props changed)
incubator/jsecurity/trunk/samples/spring-hibernate/ (props changed)
incubator/jsecurity/trunk/samples/spring-hibernate/build.xml (contents, props changed)
incubator/jsecurity/trunk/web/src/org/jsecurity/web/ (props changed)
incubator/jsecurity/trunk/web/src/org/jsecurity/web/attr/CookieAttribute.java
incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathConfigProcessor.java
incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathMatchingFilter.java
incubator/jsecurity/trunk/web/test/org/jsecurity/web/ (props changed)
incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java
Modified: incubator/jsecurity/trunk/common.ant.xml
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/common.ant.xml?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/common.ant.xml (original)
+++ incubator/jsecurity/trunk/common.ant.xml Mon Mar 2 16:39:37 2009
@@ -95,9 +95,10 @@
<fileset dir="@{srcdir}">
<include name="**/*"/>
<exclude name="**/*.java"/>
+ <exclude name="**/*.tld"/>
</fileset>
</copy>
- <copy todir="@{destdir}" preservelastmodified="true">
+ <copy todir="@{destdir}/META-INF" flatten="true" preservelastmodified="true">
<fileset dir="@{srcdir}">
<include name="**/*.tld"/>
</fileset>
@@ -120,6 +121,7 @@
<jar jarfile="${dist.jar}">
<fileset dir="${classes.dir}">
<include name="**"/>
+ <exclude name="META-INF/**"/>
</fileset>
<metainf dir="${classes.dir}/META-INF">
<include name="**"/>
Propchange: incubator/jsecurity/trunk/core/src/
------------------------------------------------------------------------------
svn:mergeinfo = /incubator/jsecurity/import/trunk/src:711429-749338
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/AbstractAuthenticationStrategy.java Mon Mar 2 16:39:37 2009
@@ -24,14 +24,14 @@
import java.util.Collection;
/**
- * Abstract base implementation for JSecurity's concrete <code>ModularAuthenticationStrategy</code>
+ * Abstract base implementation for JSecurity's concrete <code>AuthenticationStrategy</code>
* implementations.
*
* @author Jeremy Haile
* @author Les Hazlewood
* @since 0.9
*/
-public abstract class AbstractAuthenticationStrategy implements ModularAuthenticationStrategy {
+public abstract class AbstractAuthenticationStrategy implements AuthenticationStrategy {
/**
* Simply returns <code>new {@link SimpleAuthenticationInfo SimpleAuthenticationInfo}();</code>, which supports
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/ModularRealmAuthenticator.java Mon Mar 2 16:39:37 2009
@@ -46,7 +46,7 @@
* authenticator allows customized behavior for interpreting what happens when interacting with multiple realms - for
* example, you might require all realms to be successful during the attempt, or perhaps only at least one must be
* successful, or some other interpretation. This customized behavior can be performed via the use of a
- * {@link #setModularAuthenticationStrategy(ModularAuthenticationStrategy) ModularAuthenticationStrategy}, which
+ * {@link #setAuthenticationStrategy(AuthenticationStrategy) AuthenticationStrategy}, which
* you can inject as a property of this class.
*
* <p>The strategy object provides callback methods that allow you to
@@ -54,13 +54,13 @@
* in a mult-realm scenario, the strategy object is only utilized when more than one Realm is configured.
*
* <p>For greater security in a multi-realm configuration, unless overridden, the default implementation is the
- * {@link AllSuccessfulModularAuthenticationStrategy AllSuccessfulModularAuthenticationStrategy}
+ * {@link AllSuccessfulStrategy AllSuccessfulAuthenticationStrategy}
*
* @author Jeremy Haile
* @author Les Hazlewood
* @see #setRealms
- * @see AllSuccessfulModularAuthenticationStrategy
- * @see AtLeastOneSuccessfulModularAuthenticationStrategy
+ * @see AllSuccessfulStrategy
+ * @see AtLeastOneSuccessfulStrategy
* @since 0.1
*/
public class ModularRealmAuthenticator extends AbstractAuthenticator {
@@ -81,27 +81,27 @@
/**
* The authentication strategy to use during authentication attempts.
*/
- private ModularAuthenticationStrategy modularAuthenticationStrategy;
+ private AuthenticationStrategy authenticationStrategy;
/*--------------------------------------------
| C O N S T R U C T O R S |
============================================*/
/**
* Default no-argument constructor which
- * {@link #setModularAuthenticationStrategy(ModularAuthenticationStrategy) enables} a
- * {@link org.jsecurity.authc.pam.AllSuccessfulModularAuthenticationStrategy AllSuccessfulModularAuthenticationStrategy}
+ * {@link #setAuthenticationStrategy(AuthenticationStrategy) enables} a
+ * {@link AllSuccessfulStrategy AllSuccessfulAuthenticationStrategy}
* by default.
*/
public ModularRealmAuthenticator() {
- ModularAuthenticationStrategy strategy = new AllSuccessfulModularAuthenticationStrategy();
- setModularAuthenticationStrategy(strategy);
+ AuthenticationStrategy strategy = new AllSuccessfulStrategy();
+ setAuthenticationStrategy(strategy);
}
/**
* Constructor which initializes this <code>Authenticator</code> with a single realm to use during
* an authentiation attempt. Because
- * this would set a single realm, no {@link #setModularAuthenticationStrategy(ModularAuthenticationStrategy)
- * modularAuthenticationStrategy} would be used during authentication attempts.
+ * this would set a single realm, no {@link #setAuthenticationStrategy(AuthenticationStrategy)
+ * AuthenticationStrategy} would be used during authentication attempts.
*
* @param realm the realm to consult during an authentication attempt.
*/
@@ -113,7 +113,7 @@
* Constructor which initializes this <code>Authenticator</code> with multiple realms that will be
* consulted during an authentication attempt, effectively enabling PAM (Pluggable Authentication Module)
* behavior according to the configured
- * {@link #setModularAuthenticationStrategy(ModularAuthenticationStrategy) ModularAuthenticationStrategy}.
+ * {@link #setAuthenticationStrategy(AuthenticationStrategy) AuthenticationStrategy}.
*
* @param realms the realms to consult during an authentication attempt.
*/
@@ -155,29 +155,29 @@
}
/**
- * Returns the <tt>ModularAuthenticationStrategy</tt> utilized by this modular authenticator during a multi-realm
+ * Returns the <tt>AuthenticationStrategy</tt> utilized by this modular authenticator during a multi-realm
* log-in attempt. This object is only used when two or more Realms are configured.
*
* <p>Unless overridden by
- * the {@link #setModularAuthenticationStrategy(ModularAuthenticationStrategy)} method, the default implementation
- * is the {@link AllSuccessfulModularAuthenticationStrategy}.
+ * the {@link #setAuthenticationStrategy(AuthenticationStrategy)} method, the default implementation
+ * is the {@link AllSuccessfulStrategy}.
*
- * @return the <tt>ModularAuthenticationStrategy</tt> utilized by this modular authenticator during a log-in attempt.
+ * @return the <tt>AuthenticationStrategy</tt> utilized by this modular authenticator during a log-in attempt.
* @since 0.2
*/
- public ModularAuthenticationStrategy getModularAuthenticationStrategy() {
- return modularAuthenticationStrategy;
+ public AuthenticationStrategy getAuthenticationStrategy() {
+ return authenticationStrategy;
}
/**
- * Allows overriding the default <tt>ModularAuthenticationStrategy</tt> utilized during multi-realm log-in attempts.
+ * Allows overriding the default <tt>AuthenticationStrategy</tt> utilized during multi-realm log-in attempts.
* This object is only used when two or more Realms are configured.
*
- * @param modularAuthenticationStrategy the strategy implementation to use during log-in attempts.
+ * @param authenticationStrategy the strategy implementation to use during log-in attempts.
* @since 0.2
*/
- public void setModularAuthenticationStrategy(ModularAuthenticationStrategy modularAuthenticationStrategy) {
- this.modularAuthenticationStrategy = modularAuthenticationStrategy;
+ public void setAuthenticationStrategy(AuthenticationStrategy authenticationStrategy) {
+ this.authenticationStrategy = authenticationStrategy;
}
/*--------------------------------------------
@@ -223,7 +223,7 @@
}
/**
- * Performs the multi-realm authentication attempt by calling back to a {@link ModularAuthenticationStrategy} object
+ * Performs the multi-realm authentication attempt by calling back to a {@link AuthenticationStrategy} object
* as each realm is consulted for <tt>AuthenticationInfo</tt> for the specified <tt>token</tt>.
*
* @param realms the multiple realms configured on this Authenticator instance.
@@ -233,7 +233,7 @@
*/
protected AuthenticationInfo doMultiRealmAuthentication(Collection<Realm> realms, AuthenticationToken token) {
- ModularAuthenticationStrategy strategy = getModularAuthenticationStrategy();
+ AuthenticationStrategy strategy = getAuthenticationStrategy();
AuthenticationInfo aggregate = strategy.beforeAllAttempts(realms, token);
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/UnsupportedTokenException.java Mon Mar 2 16:39:37 2009
@@ -26,7 +26,7 @@
* supported by one or more configured {@link org.jsecurity.realm.Realm Realm}s.
*
* @author Les Hazlewood
- * @see ModularAuthenticationStrategy
+ * @see AuthenticationStrategy
* @since 0.2
*/
public class UnsupportedTokenException extends AuthenticationException {
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/package-info.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/package-info.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/package-info.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/authc/pam/package-info.java Mon Mar 2 16:39:37 2009
@@ -27,6 +27,6 @@
* <p/>
* How the <code>ModularRealmAuthenticator</code> actually coordinates this behavior is configurable based on your
* application's needs using an injectible
- * {@link org.jsecurity.authc.pam.ModularAuthenticationStrategy ModularAuthenticationStrategy}.
+ * {@link AuthenticationStrategy}.
*/
package org.jsecurity.authc.pam;
\ No newline at end of file
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/mgt/AuthenticatingSecurityManager.java Mon Mar 2 16:39:37 2009
@@ -19,7 +19,7 @@
package org.jsecurity.mgt;
import org.jsecurity.authc.*;
-import org.jsecurity.authc.pam.ModularAuthenticationStrategy;
+import org.jsecurity.authc.pam.AuthenticationStrategy;
import org.jsecurity.authc.pam.ModularRealmAuthenticator;
import org.jsecurity.util.LifecycleUtils;
@@ -89,20 +89,20 @@
}
/**
- * Sets the {@link org.jsecurity.authc.pam.ModularAuthenticationStrategy ModularAuthenticationStrategy} to use
+ * Sets the {@link org.jsecurity.authc.pam.AuthenticationStrategy} to use
* in multi-realm environments.
*
- * @param strategy the <code>ModularAuthenticationStrategy</code> to use in multi-realm environments.
+ * @param strategy the <code>AuthenticationStrategy</code> to use in multi-realm environments.
*/
- public void setModularAuthenticationStrategy(ModularAuthenticationStrategy strategy) {
+ public void setAuthenticationStrategy(AuthenticationStrategy strategy) {
if (!(this.authenticator instanceof ModularRealmAuthenticator)) {
- String msg = "Configuring a ModularAuthenticationStrategy is only applicable when the underlying " +
+ String msg = "Configuring a AuthenticationStrategy is only applicable when the underlying " +
"Authenticator implementation is a " + ModularRealmAuthenticator.class.getName() +
" implementation. This SecurityManager has been configured with an Authenticator of type " +
this.authenticator.getClass().getName();
throw new IllegalStateException(msg);
}
- ((ModularRealmAuthenticator) this.authenticator).setModularAuthenticationStrategy(strategy);
+ ((ModularRealmAuthenticator) this.authenticator).setAuthenticationStrategy(strategy);
}
/**
@@ -130,7 +130,7 @@
public void setAuthenticationListeners(Collection<AuthenticationListener> listeners) {
assertAuthenticatorListenerSupport();
if (!(this.authenticator instanceof AuthenticationListenerRegistrar)) {
- String msg = "Configuring a ModularAuthenticationStrategy is only applicable when the underlying " +
+ String msg = "Configuring a AuthenticationStrategy is only applicable when the underlying " +
"Authenticator implementation is a " + AuthenticationListenerRegistrar.class.getName() +
" implementation. This SecurityManager has been configured with an Authenticator of type " +
this.authenticator.getClass().getName() + ", which does not implement that interface.";
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/realm/SimpleAccountRealm.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/realm/SimpleAccountRealm.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/realm/SimpleAccountRealm.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/realm/SimpleAccountRealm.java Mon Mar 2 16:39:37 2009
@@ -140,12 +140,16 @@
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
SimpleAccount account = (SimpleAccount) getAuthorizationCache().get(upToken.getUsername());
- if (account.isLocked()) {
- throw new LockedAccountException("Account [" + account + "] is locked.");
- }
- if (account.isCredentialsExpired()) {
- String msg = "The credentials for account [" + account + "] are expired";
- throw new ExpiredCredentialsException(msg);
+ if( account != null ) {
+
+ if (account.isLocked()) {
+ throw new LockedAccountException("Account [" + account + "] is locked.");
+ }
+ if (account.isCredentialsExpired()) {
+ String msg = "The credentials for account [" + account + "] are expired";
+ throw new ExpiredCredentialsException(msg);
+ }
+
}
return account;
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/realm/jdbc/JdbcRealm.java Mon Mar 2 16:39:37 2009
@@ -274,7 +274,9 @@
// Retrieve roles and permissions from database
roleNames = getRoleNamesForUser(conn, username);
- permissions = getPermissions(conn, username, roleNames);
+ if( permissionsLookupEnabled ) {
+ permissions = getPermissions(conn, username, roleNames);
+ }
} catch (SQLException e) {
final String message = "There was a SQL error while authorizing user [" + username + "]";
Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java (original)
+++ incubator/jsecurity/trunk/core/src/org/jsecurity/realm/text/TextConfigurationRealm.java Mon Mar 2 16:39:37 2009
@@ -205,7 +205,9 @@
Map<String, String> pairs = new HashMap<String, String>();
for (String pairString : keyValuePairs) {
String[] pair = StringUtils.splitKeyValue(pairString);
- pairs.put(pair[0].trim(), pair[1].trim());
+ if( pair != null ) {
+ pairs.put(pair[0].trim(), pair[1].trim());
+ }
}
return pairs;
Propchange: incubator/jsecurity/trunk/core/test/
------------------------------------------------------------------------------
svn:mergeinfo = /incubator/jsecurity/import/trunk/test:711429-749341
Modified: incubator/jsecurity/trunk/ivy.xml
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/ivy.xml?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/ivy.xml (original)
+++ incubator/jsecurity/trunk/ivy.xml Mon Mar 2 16:39:37 2009
@@ -71,6 +71,10 @@
<dependency org="javax.servlet" name="jstl" rev="1.2" transitive="false" conf="samples"/>
<dependency org="taglibs" name="standard" rev="1.1.2" transitive="false" conf="samples"/>
<dependency org="hsqldb" name="hsqldb" rev="1.8.0.7" transitive="false" conf="samples"/>
+ <dependency org="org.hibernate" name="ejb3-persistence" rev="1.0.2.GA" conf="samples"/>
+ <dependency org="org.hibernate" name="hibernate-annotations" rev="3.2.1.ga" conf="samples">
+ <exclude org="javax.transaction"/>
+ </dependency>
<dependency org="org.hibernate" name="hibernate" rev="3.2.6.ga" conf="samples">
<!-- JTA 1.0.1b jar is not allowed in the Maven repo because of Sun's binary license, so we have to
download it explictly from another location (we use Geronimo's version) -->
@@ -87,99 +91,6 @@
<artifact name="docbook-libs" type="zip" ext="zip"/>
</dependency>
- <!-- TODO: move these contents (old library_versions.txt file) into appropriate places in this document. -->
- <!-- This file lists all 3rd party libraries (and their versions!!!) that
- are required to build or run the project.
-
- If you're a developer editing this file, please keep all listings in alphabetical order for
- convenient lookup.
-
- Some notes:
-
- - Each 3rd party library is stored in a directory named after the
- open-source project or company that created it. This makes for
- easy organization of lots of libs.
-
- - Jar files stored _do not_ have version numbers
- actually in their file name. If the jar originally comes as such,
- it is renamed with the version number stripped off. The version
- number is instead maintained in this file. The reason for this is
- so that every time we need to upgrade any 3rd party library,
- we don't have to edit any build.xml or properies files to reflect
- a potential name change due to a version number - you just note
- that change once in this file and overwrite the old jar, checking
- in that overwrite to CVS in the process.
-
- - Each 3rd party lib is listed here along with what it is
- used for and if its needed for build-time, run-time or both.
-
- - Thanks to the gents working on the Spring Framework (http://www.springframework.org)
- that provided the template and the idea for this file.
-
- * atunit/atunut.jar
- - AtUnit 1.0
- - Used in unit tests
-
- * easymock/easymock.jar, easymockclassextension.jar
- - EasyMock 2.2 w/ ClassExtension 2.2 (http://www.easymock.org)
- - Used in test cases for creating dynamic mock objects
-
- * ehcache/ehcache.jar
- - ehcache 1.3.0 (http://ehcache.sourceforge.net/)
- - Required for compiling, using ehcache cache manager, and for runtime session management
-
- * google-collections/google-collect.jar
- - Google Collections Snapshot 20071022
- - Used in test cases for conveniently constructing collections
-
- * hsqldb/hsqldb.jar
- - HSQLDB 1.8.0.7 (http://www.hsqldb.org)
- - Used in the sample application to show an example of a JDBC-based Realm.
-
- * j2ee/jsp-api.jar
- - JSP API 2.0 (http://java.sun.com/products/jsp)
- - Required for building the RI tag libraries
-
- * j2ee/servlet-api.jar
- - Servlet API 2.4 (http://java.sun.com/products/servlet)
- - required for building web support classes (Servlet Filters, etc)
-
- * jakarta-commons/commons-beanutils-core.jar
- - Commons BeanUtils 1.7.0 (http://jakarta.apache.org/commons/beanutils/index.html)
- - required for building and running JSecurity
- - used for constructing Permissions in the Reference Implementation's PermissionAnnotationAuthorizationModule
-
- * jboss/jboss-aop.jar
- - JBoss AOP jar from the JBoss 4.0.4.GA Application Server release
- - Required at build time for JBoss integration support classes.
-
- * jug/jug.jar
- - Java Uuid Genrator (JUG) v. 2.0.0 (Apache 2.0 jar) (http://jug.safehaus.org/)
- - used as a fallback UUID generator for memory-based session management if below Java 1.5
-
- * junit/junit.jar
- - JUnit Test Framework 4.1 (http://www.junit.org)
- - Required for building and running test cases
-
- * log4j/log4j.jar
- - Log4J 1.2.9 (http://logging.apache.org/log4j)
- - required by the RI during build and runtime for logging support
-
- * quartz/quartz.jar
- - Quartz 1.5.2 (http://www.opensymphony.com/quartz)
- - required during build and runtime for Quartz-based session validation support
-
- * retroweaver/retroweaver.jar,retroweaver-rt.jar
- - Retroweaver 2.0 (http://retroweaver.sourceforge.net)
- - required for retroweaving to support JDK 1.3 and 1.4
- - rt jar is required at runtime if running in 1.3 or 1.4
-
- * spring/spring.jar
- - Spring Application Framework 2.0.2 (http://springframework.org)
- - required to build Spring integration support and sample apps
- -->
-
-
</dependencies>
</ivy-module>
\ No newline at end of file
Propchange: incubator/jsecurity/trunk/ivy.xml
------------------------------------------------------------------------------
svn:mergeinfo = /incubator/jsecurity/import/trunk/ivy.xml:711429-749341
Propchange: incubator/jsecurity/trunk/samples/spring-hibernate/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Mar 2 16:39:37 2009
@@ -0,0 +1 @@
+/incubator/jsecurity/import/trunk/samples/spring-hibernate:720066-749338
Modified: incubator/jsecurity/trunk/samples/spring-hibernate/build.xml
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/samples/spring-hibernate/build.xml?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/samples/spring-hibernate/build.xml (original)
+++ incubator/jsecurity/trunk/samples/spring-hibernate/build.xml Mon Mar 2 16:39:37 2009
@@ -56,9 +56,11 @@
<target name="compile" depends="compile.src"/> <!-- no test classes, no need to depend on compile.test -->
<target name="war">
- <war warfile="${dist.war}" webxml="WEB-INF/web.xml">
+ <echo message="DIST DIR: ${dist.dir}"/>
+ <war warfile="${dist.war}" webxml="web/WEB-INF/web.xml">
<lib dir="${dist.dir}" includes="*.jar"/>
- <lib dir="${root.dist.dir}" includes="jsecurity.jar"/>
+ <lib dir="${dist.dir}/samples" includes="jsecurity-samples-sprhib*.jar"/>
+ <lib dir="${dist.dir}/modules" includes="*.jar"/>
<lib dir="${lib.dir}/samples">
<include name="jstl-*.jar"/>
<include name="standard-*.jar"/>
@@ -72,15 +74,16 @@
<!-- Hibernate libs: -->
<lib dir="${lib.dir}/samples">
<include name="hibernate-*.jar"/>
+ <include name="persistence-api-*.jar"/>
<include name="antlr-*.jar"/>
<include name="asm-attrs-*.jar"/>
<include name="asm-*.jar"/>
<include name="cglib-*.jar"/>
- <include name="geronimo-jta_1.0.1B_spec.jar"/>
+ <include name="geronimo-jta_1.0.1B_spec-*.jar"/>
<include name="dom4j-*.jar"/>
<include name="commons-collections-*.jar"/>
</lib>
- <fileset dir="${base.dir}" includes="**" excludes="**/web.xml, **/build.xml"/>
+ <fileset dir="${base.dir}/web" includes="**" excludes="**/web.xml, **/build.xml"/>
</war>
</target>
Propchange: incubator/jsecurity/trunk/samples/spring-hibernate/build.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Mar 2 16:39:37 2009
@@ -0,0 +1 @@
+/incubator/jsecurity/import/trunk/samples/spring-hibernate/build.xml:711429-749342
Copied: incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml (from r749338, incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml)
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml?p2=incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml&p1=incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml&r1=749338&r2=749350&rev=749350&view=diff
==============================================================================
--- incubator/jsecurity/import/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml (original)
+++ incubator/jsecurity/trunk/samples/spring-hibernate/web/WEB-INF/classes/ehcache.xml Mon Mar 2 16:39:37 2009
@@ -38,9 +38,19 @@
timeToLiveSeconds="0"
overflowToDisk="true"/>
+ <cache name="org.jsecurity.samples.sprhib.model.Role.permissions"
+ maxElementsInMemory="100"
+ timeToLiveSeconds="0"
+ overflowToDisk="true"/>
+
<cache name="org.jsecurity.samples.sprhib.model.User"
maxElementsInMemory="1000"
timeToLiveSeconds="3600"
overflowToDisk="true"/>
+ <cache name="org.jsecurity.samples.sprhib.model.User.roles"
+ maxElementsInMemory="1000"
+ timeToLiveSeconds="3600"
+ overflowToDisk="true"/>
+
</ehcache>
\ No newline at end of file
Propchange: incubator/jsecurity/trunk/web/src/org/jsecurity/web/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Mar 2 16:39:37 2009
@@ -0,0 +1 @@
+/incubator/jsecurity/import/trunk/src/org/jsecurity/web:720066-749338
Modified: incubator/jsecurity/trunk/web/src/org/jsecurity/web/attr/CookieAttribute.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/src/org/jsecurity/web/attr/CookieAttribute.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/web/src/org/jsecurity/web/attr/CookieAttribute.java (original)
+++ incubator/jsecurity/trunk/web/src/org/jsecurity/web/attr/CookieAttribute.java Mon Mar 2 16:39:37 2009
@@ -170,6 +170,29 @@
return path;
}
+
+ /**
+ * Returns the Cookie's calculated path setting. If {@link Cookie#getPath() path} <tt>null</tt>, then the
+ * <tt>request</tt>'s {@link javax.servlet.http.HttpServletRequest#getContextPath() context path}
+ * will be returned. If getContextPath() is the empty string or null then the ROOT_PATH constant is returned.
+ * <p/>
+ * <p>The default is <code>null</code>.</p>
+ *
+ * @return the path to be used as the path when the cookie is created or removed.
+ */
+ public String calculatePath(HttpServletRequest request) {
+ String calculatePath = getPath() != null ? getPath() : request.getContextPath();
+
+ //fix for http://issues.apache.org/jira/browse/JSEC-34:
+ calculatePath = StringUtils.clean(calculatePath);
+ if (calculatePath == null) {
+ calculatePath = ROOT_PATH;
+ }
+ log.trace ("calculatePath: returning=" + calculatePath);
+ return calculatePath;
+ }
+
+
/**
* Sets the Cookie's {@link Cookie#getPath() path} setting. If the argument is <tt>null</tt>, the <tt>request</tt>'s
* {@link javax.servlet.http.HttpServletRequest#getContextPath() context path} will be used.
@@ -263,7 +286,7 @@
String name = getName();
int maxAge = getMaxAge();
- String path = getPath() != null ? getPath() : request.getContextPath();
+ String path = calculatePath(request);
//fix for http://issues.apache.org/jira/browse/JSEC-34:
path = StringUtils.clean(path);
@@ -280,6 +303,7 @@
}
response.addCookie(cookie);
+
if (log.isTraceEnabled()) {
log.trace("Added Cookie [" + name + "] to path [" + path + "] with value [" +
stringValue + "] to the HttpServletResponse.");
@@ -289,13 +313,17 @@
public void removeValue(ServletRequest servletRequest, ServletResponse response) {
HttpServletRequest request = toHttp(servletRequest);
Cookie cookie = getCookie(request, getName());
+
if (cookie != null) {
cookie.setMaxAge(0);
+ cookie.setValue("forgetme");
//JSEC-94: Must set the path on the outgoing cookie (some browsers don't retain it from the
//retrieved cookie?)
- cookie.setPath(getPath() == null ? request.getContextPath() : getPath());
+ // my testing shows none of these browsers will remove cookie if setPath() is not invoked: FF3, Chrome, IE7, Safari windows
+ cookie.setPath(calculatePath(request));
cookie.setSecure(isSecure());
toHttp(response).addCookie(cookie);
+ log.trace("Removed cookie[" + getName() + "] with path [" + calculatePath(request) + "] from HttpServletResponse.");
}
}
}
Modified: incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathConfigProcessor.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathConfigProcessor.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathConfigProcessor.java (original)
+++ incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathConfigProcessor.java Mon Mar 2 16:39:37 2009
@@ -18,6 +18,8 @@
*/
package org.jsecurity.web.filter;
+import javax.servlet.Filter;
+
/**
* A PathConfigProcessor processes configuration entries on a per path (per url) basis.
*
@@ -28,5 +30,5 @@
//TODO - complete JavaDoc
- void processPathConfig(String path, String config);
+ Filter processPathConfig(String path, String config);
}
Modified: incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathMatchingFilter.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathMatchingFilter.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathMatchingFilter.java (original)
+++ incubator/jsecurity/trunk/web/src/org/jsecurity/web/filter/PathMatchingFilter.java Mon Mar 2 16:39:37 2009
@@ -26,6 +26,7 @@
import org.jsecurity.web.WebUtils;
import org.jsecurity.web.servlet.AdviceFilter;
+import javax.servlet.Filter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.util.LinkedHashMap;
@@ -76,14 +77,16 @@
*
* @param path the application context path to match for executing this filter.
* @param config the specified for <em>this particular filter only</em> for the given <code>path</code>
+ * @return this configured filter.
*/
- public void processPathConfig(String path, String config) {
+ public Filter processPathConfig(String path, String config) {
String[] values = null;
if (config != null) {
values = split(config);
}
this.appliedPaths.put(path, values);
+ return this;
}
/**
Propchange: incubator/jsecurity/trunk/web/test/org/jsecurity/web/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Mar 2 16:39:37 2009
@@ -0,0 +1 @@
+/incubator/jsecurity/import/trunk/test/org/jsecurity/web:720066-749341
Modified: incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java
URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java?rev=749350&r1=749349&r2=749350&view=diff
==============================================================================
--- incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java (original)
+++ incubator/jsecurity/trunk/web/test/org/jsecurity/web/attr/CookieAttributeTest.java Mon Mar 2 16:39:37 2009
@@ -55,7 +55,7 @@
expect(mockRequest.getCookies()).andReturn(cookies);
//no path set on the cookie, so we expect to retrieve it from the context path
- expect(mockRequest.getContextPath()).andReturn("/somepath");
+ expect(mockRequest.getContextPath()).andReturn("/somepath").times(2);
mockResponse.addCookie(cookie);
replay(mockRequest);
replay(mockResponse);
@@ -121,4 +121,29 @@
});
return null;
}
+
+ @Test
+ //Verifies fix for JSEC-64
+ public void testRemoveValueWithNullContext() throws Exception {
+
+ Cookie cookie = new Cookie("test", "blah");
+ cookie.setMaxAge(2351234); //doesn't matter what the time is
+ Cookie[] cookies = new Cookie[]{cookie};
+
+ expect(mockRequest.getCookies()).andReturn(cookies);
+ //no path set on the cookie, so we expect to retrieve it from the context path
+ expect(mockRequest.getContextPath()).andReturn(null).times(2);
+ mockResponse.addCookie(cookie);
+ replay(mockRequest);
+ replay(mockResponse);
+
+ cookieAttribute.removeValue(mockRequest, mockResponse);
+
+ verify(mockRequest);
+ verify(mockResponse);
+
+ assertTrue(cookie.getMaxAge() == 0);
+ assertTrue(cookie.getPath().equals("/"));
+ }
+
}