Initial commit.
This commit is contained in:
parent
4091550764
commit
c220ff583c
|
@ -0,0 +1,130 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters.jboss;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import net.sf.acegisecurity.GrantedAuthority;
|
||||||
|
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||||
|
import net.sf.acegisecurity.adapters.MockHttpServletRequest;
|
||||||
|
import net.sf.acegisecurity.adapters.MockPrincipal;
|
||||||
|
import net.sf.acegisecurity.adapters.PrincipalAcegiUserToken;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
|
||||||
|
import javax.security.auth.Subject;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests {@link JbossIntegrationFilter}.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class JbossIntegrationFilterTests extends TestCase {
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public JbossIntegrationFilterTests() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public JbossIntegrationFilterTests(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public final void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
junit.textui.TestRunner.run(JbossIntegrationFilterTests.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testCorrectOperation() {
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(
|
||||||
|
makeIntoSubject(principal)));
|
||||||
|
|
||||||
|
Object result = filter.extractFromContainer(new MockHttpServletRequest(
|
||||||
|
null));
|
||||||
|
|
||||||
|
if (!(result instanceof PrincipalAcegiUserToken)) {
|
||||||
|
fail("Should have returned PrincipalAcegiUserToken");
|
||||||
|
}
|
||||||
|
|
||||||
|
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
|
||||||
|
assertEquals(principal, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfContextReturnsSomethingOtherThanASubject() {
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(
|
||||||
|
"THIS_IS_NOT_A_SUBJECT"));
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfInitialContextHasNullPrincipal() {
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(
|
||||||
|
makeIntoSubject(null)));
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfInitialContextHasNullSubject() {
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(
|
||||||
|
null));
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfInitialContextIsNull() {
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(null);
|
||||||
|
|
||||||
|
Object result = filter.extractFromContainer(new MockHttpServletRequest(
|
||||||
|
null));
|
||||||
|
assertEquals(null, filter.extractFromContainer(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfPrincipalNotAnAuthenticationImplementation() {
|
||||||
|
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(
|
||||||
|
makeIntoSubject(new MockPrincipal())));
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testTestingObjectReturnsInitialContext()
|
||||||
|
throws Exception {
|
||||||
|
JbossIntegrationFilter filter = new JbossIntegrationFilter();
|
||||||
|
assertTrue(filter.getLookupContext() instanceof Context);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Subject makeIntoSubject(Principal principal) {
|
||||||
|
Set principals = new HashSet();
|
||||||
|
principals.add(principal);
|
||||||
|
|
||||||
|
return new Subject(false, principals, new HashSet(), new HashSet());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,171 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters.jboss;
|
||||||
|
|
||||||
|
import java.util.Hashtable;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
import javax.naming.Name;
|
||||||
|
import javax.naming.NameParser;
|
||||||
|
import javax.naming.NamingEnumeration;
|
||||||
|
import javax.naming.NamingException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mocks a <code>javax.naming.Context</code> and returns an <code>Object</code>
|
||||||
|
* when queried for address <code>java:comp/env/security/subject</code>.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class MockInitialContext implements Context {
|
||||||
|
//~ Instance fields ========================================================
|
||||||
|
|
||||||
|
private Object object;
|
||||||
|
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public MockInitialContext(Object object) {
|
||||||
|
this.object = object;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockInitialContext() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public Hashtable getEnvironment() throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNameInNamespace() throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NameParser getNameParser(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NameParser getNameParser(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object addToEnvironment(String propName, Object propVal)
|
||||||
|
throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void bind(String name, Object obj) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void bind(Name name, Object obj) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String composeName(String name, String prefix)
|
||||||
|
throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Name composeName(Name name, Name prefix) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Context createSubcontext(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Context createSubcontext(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void destroySubcontext(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void destroySubcontext(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NamingEnumeration list(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NamingEnumeration list(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NamingEnumeration listBindings(String name)
|
||||||
|
throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public NamingEnumeration listBindings(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object lookup(String name) throws NamingException {
|
||||||
|
return this.object;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object lookup(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object lookupLink(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object lookupLink(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rebind(String name, Object obj) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rebind(Name name, Object obj) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object removeFromEnvironment(String propName)
|
||||||
|
throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rename(String oldName, String newName)
|
||||||
|
throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rename(Name oldName, Name newName) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unbind(String name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unbind(Name name) throws NamingException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters.jboss;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
import javax.naming.NamingException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides mock of <code>JbossIntegrationFilter</code>, using a lookup
|
||||||
|
* <code>Context</code> provided in the constructor.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class MockJbossIntegrationFilter extends JbossIntegrationFilter {
|
||||||
|
//~ Instance fields ========================================================
|
||||||
|
|
||||||
|
private Context context;
|
||||||
|
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public MockJbossIntegrationFilter(Context context) {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockJbossIntegrationFilter() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
protected Context getLookupContext() throws NamingException {
|
||||||
|
return this.context;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,260 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import net.sf.acegisecurity.Authentication;
|
||||||
|
import net.sf.acegisecurity.GrantedAuthority;
|
||||||
|
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||||
|
import net.sf.acegisecurity.context.Context;
|
||||||
|
import net.sf.acegisecurity.context.ContextHolder;
|
||||||
|
import net.sf.acegisecurity.context.SecureContext;
|
||||||
|
import net.sf.acegisecurity.context.SecureContextImpl;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.servlet.Filter;
|
||||||
|
import javax.servlet.FilterChain;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
import javax.servlet.ServletResponse;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests {@link AbstractIntegrationFilter}.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class AbstractIntegrationFilterTests extends TestCase {
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public AbstractIntegrationFilterTests() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AbstractIntegrationFilterTests(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public final void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
junit.textui.TestRunner.run(AbstractIntegrationFilterTests.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testContextHolderContentsPreserved() throws Exception {
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
|
||||||
|
MockFilterChain chain = new MockFilterChain(true, principal);
|
||||||
|
|
||||||
|
MockSecureContextImpl secureContext = new MockSecureContextImpl(
|
||||||
|
"FOO_BAR");
|
||||||
|
ContextHolder.setContext(secureContext);
|
||||||
|
assertEquals(secureContext, ContextHolder.getContext());
|
||||||
|
|
||||||
|
executeFilterInContainerSimulator(filter, null, null, chain);
|
||||||
|
|
||||||
|
MockSecureContextImpl after = (MockSecureContextImpl) ContextHolder
|
||||||
|
.getContext();
|
||||||
|
assertEquals(secureContext.getInfo(), after.getInfo());
|
||||||
|
ContextHolder.setContext(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testContextHolderHasAuthenticationRemoved()
|
||||||
|
throws Exception {
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
|
||||||
|
MockFilterChain chain = new MockFilterChain(true, principal);
|
||||||
|
|
||||||
|
SecureContext secureContext = new SecureContextImpl();
|
||||||
|
secureContext.setAuthentication(principal);
|
||||||
|
ContextHolder.setContext(secureContext);
|
||||||
|
assertEquals(secureContext, ContextHolder.getContext());
|
||||||
|
|
||||||
|
executeFilterInContainerSimulator(filter, null, null, chain);
|
||||||
|
|
||||||
|
SecureContext after = (SecureContext) ContextHolder.getContext();
|
||||||
|
assertEquals(null, after.getAuthentication());
|
||||||
|
ContextHolder.setContext(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testIgnoredWhenConcreteClassReturnsANonAuthenticationObject()
|
||||||
|
throws Exception {
|
||||||
|
MockPrincipal principal = new MockPrincipal();
|
||||||
|
MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
|
||||||
|
MockFilterChain chain = new MockFilterChain(false, null);
|
||||||
|
|
||||||
|
Context before = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (before != null) {
|
||||||
|
if (before instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) before).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
executeFilterInContainerSimulator(filter, null, null, chain);
|
||||||
|
|
||||||
|
Context after = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (after != null) {
|
||||||
|
if (after instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) after).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testIgnoredWhenConcreteClassReturnsNullAuthenticationObject()
|
||||||
|
throws Exception {
|
||||||
|
MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(null);
|
||||||
|
MockFilterChain chain = new MockFilterChain(false, null);
|
||||||
|
|
||||||
|
Context before = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (before != null) {
|
||||||
|
if (before instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) before).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
executeFilterInContainerSimulator(filter, null, null, chain);
|
||||||
|
|
||||||
|
Context after = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (after != null) {
|
||||||
|
if (after instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) after).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testSuccessWhenConcreteClassReturnsValidAuthenticationObject()
|
||||||
|
throws Exception {
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
|
||||||
|
MockFilterChain chain = new MockFilterChain(true, principal);
|
||||||
|
|
||||||
|
Context before = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (before != null) {
|
||||||
|
if (before instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) before).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
executeFilterInContainerSimulator(filter, null, null, chain);
|
||||||
|
|
||||||
|
Context after = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (after != null) {
|
||||||
|
if (after instanceof SecureContext) {
|
||||||
|
assertEquals(null, ((SecureContext) after).getAuthentication());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeFilterInContainerSimulator(Filter filter,
|
||||||
|
ServletRequest request, ServletResponse response,
|
||||||
|
FilterChain filterChain) throws ServletException, IOException {
|
||||||
|
filter.init(null);
|
||||||
|
filter.doFilter(request, response, filterChain);
|
||||||
|
filter.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Inner Classes ==========================================================
|
||||||
|
|
||||||
|
private class MockAbstractIntegrationFilterImpl
|
||||||
|
extends AbstractIntegrationFilter {
|
||||||
|
private Object extractFromContainerResult;
|
||||||
|
|
||||||
|
public MockAbstractIntegrationFilterImpl(
|
||||||
|
Object extractFromContainerResult) {
|
||||||
|
this.extractFromContainerResult = extractFromContainerResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockAbstractIntegrationFilterImpl() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object extractFromContainer(ServletRequest request) {
|
||||||
|
return this.extractFromContainerResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class MockFilterChain implements FilterChain {
|
||||||
|
private Authentication expectedAuthenticationObjectInContextHolder;
|
||||||
|
private boolean expectContextHolderContainSecureContext = false;
|
||||||
|
|
||||||
|
public MockFilterChain(
|
||||||
|
boolean expectContextHolderContainSecureContext,
|
||||||
|
Authentication expectedAuthenticationObjectInContextHolder) {
|
||||||
|
if ((expectedAuthenticationObjectInContextHolder != null)
|
||||||
|
&& !expectContextHolderContainSecureContext) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"If an Authentication object is expected, the ContextHolder should contain a SecureContext");
|
||||||
|
}
|
||||||
|
|
||||||
|
this.expectContextHolderContainSecureContext = expectContextHolderContainSecureContext;
|
||||||
|
this.expectedAuthenticationObjectInContextHolder = expectedAuthenticationObjectInContextHolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockFilterChain() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doFilter(ServletRequest request, ServletResponse response)
|
||||||
|
throws IOException, ServletException {
|
||||||
|
if (expectContextHolderContainSecureContext) {
|
||||||
|
Context context = ContextHolder.getContext();
|
||||||
|
|
||||||
|
if (!(context instanceof SecureContext)) {
|
||||||
|
fail("ContextHolder should have contained SecureContext");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ContextHolder.getContext() != null) {
|
||||||
|
fail("ContextHolder should have been null but wasn't");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class MockSecureContextImpl extends SecureContextImpl {
|
||||||
|
private String info;
|
||||||
|
|
||||||
|
public MockSecureContextImpl(String info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockSecureContextImpl() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfo() {
|
||||||
|
return this.info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,149 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import net.sf.acegisecurity.GrantedAuthority;
|
||||||
|
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||||
|
import net.sf.acegisecurity.adapters.jboss.JbossIntegrationFilter;
|
||||||
|
import net.sf.acegisecurity.adapters.jboss.MockInitialContext;
|
||||||
|
import net.sf.acegisecurity.adapters.jboss.MockJbossIntegrationFilter;
|
||||||
|
|
||||||
|
import org.jboss.security.SimplePrincipal;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.naming.Context;
|
||||||
|
|
||||||
|
import javax.security.auth.Subject;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests {@link AutoIntegrationFilter}.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class AutoIntegrationFilterTests extends TestCase {
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public AutoIntegrationFilterTests() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public AutoIntegrationFilterTests(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public final void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
junit.textui.TestRunner.run(AutoIntegrationFilterTests.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDetectsAuthenticationObjectInHttpRequest() {
|
||||||
|
AutoIntegrationFilter filter = new AutoIntegrationFilter();
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
Object result = filter.extractFromContainer(new MockHttpServletRequest(
|
||||||
|
principal));
|
||||||
|
|
||||||
|
if (!(result instanceof PrincipalAcegiUserToken)) {
|
||||||
|
fail("Should have returned PrincipalAcegiUserToken");
|
||||||
|
}
|
||||||
|
|
||||||
|
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
|
||||||
|
assertEquals(principal, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testDetectsAuthenticationObjectInJboss() {
|
||||||
|
// Prepare a mock Jboss environment reflecting completed authentication
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
Context context = new MockInitialContext(makeIntoSubject(principal));
|
||||||
|
JbossIntegrationFilter jbossFilter = new MockJbossIntegrationFilter(context);
|
||||||
|
|
||||||
|
// Create a SimplePrincipal, which is what JBoss places into HttpRequest
|
||||||
|
SimplePrincipal simplePrincipal = new SimplePrincipal("TEST");
|
||||||
|
|
||||||
|
// Now try to extract authentication information via our mock AutoIntegrationFilter
|
||||||
|
AutoIntegrationFilter filter = new MockAutoIntegrationFilterJboss(jbossFilter);
|
||||||
|
Object result = filter.extractFromContainer(new MockHttpServletRequest(
|
||||||
|
simplePrincipal));
|
||||||
|
|
||||||
|
System.out.println(result);
|
||||||
|
|
||||||
|
if (!(result instanceof PrincipalAcegiUserToken)) {
|
||||||
|
fail("Should have returned PrincipalAcegiUserToken");
|
||||||
|
}
|
||||||
|
|
||||||
|
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
|
||||||
|
assertEquals(principal, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testHandlesIfHttpRequestIsNullForSomeReason() {
|
||||||
|
AutoIntegrationFilter filter = new AutoIntegrationFilter();
|
||||||
|
assertEquals(null, filter.extractFromContainer(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testHandlesIfThereIsNoPrincipal() {
|
||||||
|
AutoIntegrationFilter filter = new AutoIntegrationFilter();
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testReturnsNullIfNonAuthenticationObjectInHttpRequest() {
|
||||||
|
AutoIntegrationFilter filter = new AutoIntegrationFilter();
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(
|
||||||
|
new MockHttpServletRequest(new MockPrincipal())));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Subject makeIntoSubject(Principal principal) {
|
||||||
|
Set principals = new HashSet();
|
||||||
|
principals.add(principal);
|
||||||
|
|
||||||
|
return new Subject(false, principals, new HashSet(), new HashSet());
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Inner Classes ==========================================================
|
||||||
|
|
||||||
|
private class MockAutoIntegrationFilterJboss extends AutoIntegrationFilter {
|
||||||
|
private JbossIntegrationFilter filter;
|
||||||
|
|
||||||
|
public MockAutoIntegrationFilterJboss(JbossIntegrationFilter filter) {
|
||||||
|
this.filter = filter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockAutoIntegrationFilterJboss() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected JbossIntegrationFilter getJbossIntegrationFilter() {
|
||||||
|
return this.filter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import net.sf.acegisecurity.GrantedAuthority;
|
||||||
|
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests {@link HttpRequestIntegrationFilter}.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class HttpRequestIntegrationFilterTests extends TestCase {
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public HttpRequestIntegrationFilterTests() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpRequestIntegrationFilterTests(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public final void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
junit.textui.TestRunner.run(HttpRequestIntegrationFilterTests.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testCorrectOperation() {
|
||||||
|
HttpRequestIntegrationFilter filter = new HttpRequestIntegrationFilter();
|
||||||
|
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
|
||||||
|
"someone", "password",
|
||||||
|
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
|
||||||
|
Object result = filter.extractFromContainer(new MockHttpServletRequest(
|
||||||
|
principal));
|
||||||
|
|
||||||
|
if (!(result instanceof PrincipalAcegiUserToken)) {
|
||||||
|
fail("Should have returned PrincipalAcegiUserToken");
|
||||||
|
}
|
||||||
|
|
||||||
|
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
|
||||||
|
assertEquals(principal, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testHandlesIfHttpRequestIsNullForSomeReason() {
|
||||||
|
HttpRequestIntegrationFilter filter = new HttpRequestIntegrationFilter();
|
||||||
|
assertEquals(null, filter.extractFromContainer(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testHandlesIfThereIsNoPrincipal() {
|
||||||
|
HttpRequestIntegrationFilter filter = new HttpRequestIntegrationFilter();
|
||||||
|
assertEquals(null,
|
||||||
|
filter.extractFromContainer(new MockHttpServletRequest(null)));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,257 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
|
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.RequestDispatcher;
|
||||||
|
import javax.servlet.ServletInputStream;
|
||||||
|
import javax.servlet.http.Cookie;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mocks a <code>HttpServletRequest</code> and provides the
|
||||||
|
* <code>getUserPrincipal()</code> method.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class MockHttpServletRequest implements HttpServletRequest {
|
||||||
|
//~ Instance fields ========================================================
|
||||||
|
|
||||||
|
private Principal principal;
|
||||||
|
|
||||||
|
//~ Constructors ===========================================================
|
||||||
|
|
||||||
|
public MockHttpServletRequest(Principal principal) {
|
||||||
|
this.principal = principal;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MockHttpServletRequest() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public void setAttribute(String arg0, Object arg1) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getAttribute(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration getAttributeNames() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthType() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCharacterEncoding(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCharacterEncoding() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getContentLength() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContentType() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContextPath() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cookie[] getCookies() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDateHeader(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeader(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration getHeaderNames() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration getHeaders(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ServletInputStream getInputStream() throws IOException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIntHeader(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Locale getLocale() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration getLocales() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMethod() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getParameter(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map getParameterMap() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Enumeration getParameterNames() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getParameterValues(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPathInfo() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPathTranslated() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProtocol() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQueryString() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public BufferedReader getReader() throws IOException {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRealPath(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemoteAddr() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemoteHost() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemoteUser() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public RequestDispatcher getRequestDispatcher(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequestURI() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public StringBuffer getRequestURL() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequestedSessionId() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequestedSessionIdFromCookie() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequestedSessionIdFromURL() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequestedSessionIdFromUrl() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequestedSessionIdValid() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getScheme() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSecure() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServerName() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getServerPort() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getServletPath() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpSession getSession(boolean arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpSession getSession() {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUserInRole(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
public Principal getUserPrincipal() {
|
||||||
|
return this.principal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeAttribute(String arg0) {
|
||||||
|
throw new UnsupportedOperationException("mock method not implemented");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* Copyright 2004 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.sf.acegisecurity.adapters;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mocks a <code>Principal</code>.
|
||||||
|
*
|
||||||
|
* @author Ben Alex
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class MockPrincipal implements Principal {
|
||||||
|
//~ Methods ================================================================
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return "MockPrincipal";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue