diff --git a/core/src/test/java/org/acegisecurity/MockAuthenticationManager.java b/core/src/test/java/org/acegisecurity/MockAuthenticationManager.java
index 33fa59d2ca..d781f55c6a 100644
--- a/core/src/test/java/org/acegisecurity/MockAuthenticationManager.java
+++ b/core/src/test/java/org/acegisecurity/MockAuthenticationManager.java
@@ -16,16 +16,36 @@
package net.sf.acegisecurity;
/**
- * Simply accepts as valid whatever is passed to it.
+ * Simply accepts as valid whatever is passed to it, if
+ * grantAccess is set to true.
*
* @author Ben Alex
* @version $Id$
*/
public class MockAuthenticationManager implements AuthenticationManager {
+ //~ Instance fields ========================================================
+
+ private boolean grantAccess = true;
+
+ //~ Constructors ===========================================================
+
+ public MockAuthenticationManager(boolean grantAccess) {
+ this.grantAccess = grantAccess;
+ }
+
+ public MockAuthenticationManager() {
+ super();
+ }
+
//~ Methods ================================================================
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
- return authentication;
+ if (grantAccess) {
+ return authentication;
+ } else {
+ throw new BadCredentialsException(
+ "MockAuthenticationManager instructed to deny access");
+ }
}
}