SEC-1036: Removed deprecated class and unnecessary mock.

This commit is contained in:
Luke Taylor 2008-12-05 22:30:26 +00:00
parent 6293541b73
commit 953a4ab9ea
3 changed files with 15 additions and 121 deletions

View File

@ -1,39 +0,0 @@
/* Copyright 2004, 2005, 2006 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 org.springframework.security.ldap;
import org.springframework.dao.DataAccessException;
/**
* Used to wrap unexpected NamingExceptions while accessing the LDAP server or for other LDAP-related data problems
* such as data we can't handle.
*
* @deprecated Spring LDAP classes are now used instead.
* @author Luke Taylor
* @version $Id$
*/
public class LdapDataAccessException extends DataAccessException {
//~ Constructors ===================================================================================================
public LdapDataAccessException(String msg) {
super(msg);
}
public LdapDataAccessException(String msg, Throwable ex) {
super(msg, ex);
}
}

View File

@ -1,68 +0,0 @@
/* Copyright 2004, 2005, 2006 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 org.springframework.security.ldap;
import javax.naming.directory.DirContext;
import org.springframework.dao.DataAccessException;
import org.springframework.ldap.NamingException;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
/**
*
* @author Luke Taylor
* @version $Id$
*/
public class MockSpringSecurityContextSource implements BaseLdapPathContextSource {
//~ Instance fields ================================================================================================
private DirContext ctx;
private String baseDn;
//~ Constructors ===================================================================================================
public MockSpringSecurityContextSource() {
}
public MockSpringSecurityContextSource(DirContext ctx, String baseDn) {
this.baseDn = baseDn;
this.ctx = ctx;
}
//~ Methods ========================================================================================================
public DirContext getReadOnlyContext() throws DataAccessException {
return ctx;
}
public DirContext getReadWriteContext() throws DataAccessException {
return ctx;
}
public DirContext getContext(String principal, String credentials) throws NamingException {
return ctx;
}
public DistinguishedName getBaseLdapPath() {
return new DistinguishedName(baseDn);
}
public String getBaseLdapPathAsString() {
return getBaseLdapPath().toString();
}
}

View File

@ -15,19 +15,19 @@
package org.springframework.security.providers.ldap.authenticator;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchControls;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Test;
import org.springframework.security.ldap.MockSpringSecurityContextSource;
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.SearchControls;
/**
*
@ -35,23 +35,24 @@ import javax.naming.directory.SearchControls;
* @version $Id$
*/
public class PasswordComparisonAuthenticatorMockTests {
Mockery context = new JUnit4Mockery();
Mockery jmock = new JUnit4Mockery();
//~ Methods ========================================================================================================
@Test
public void ldapCompareOperationIsUsedWhenPasswordIsNotRetrieved() throws Exception {
final DirContext dirCtx = context.mock(DirContext.class);
final DirContext dirCtx = jmock.mock(DirContext.class);
final BaseLdapPathContextSource source = jmock.mock(BaseLdapPathContextSource.class);
final BasicAttributes attrs = new BasicAttributes();
attrs.put(new BasicAttribute("uid", "bob"));
PasswordComparisonAuthenticator authenticator =
new PasswordComparisonAuthenticator(new MockSpringSecurityContextSource(dirCtx, ""));
PasswordComparisonAuthenticator authenticator = new PasswordComparisonAuthenticator(source);
authenticator.setUserDnPatterns(new String[] {"cn={0},ou=people"});
// Get the mock to return an empty attribute set
context.checking(new Expectations() {{
jmock.checking(new Expectations() {{
allowing(source).getReadOnlyContext(); will(returnValue(dirCtx));
oneOf(dirCtx).getAttributes(with(equal("cn=Bob,ou=people")), with(aNull(String[].class))); will(returnValue(attrs));
oneOf(dirCtx).getNameInNamespace(); will(returnValue("dc=springframework,dc=org"));
}});
@ -59,7 +60,7 @@ public class PasswordComparisonAuthenticatorMockTests {
// Setup a single return value (i.e. success)
final Attributes searchResults = new BasicAttributes("", null);
context.checking(new Expectations() {{
jmock.checking(new Expectations() {{
oneOf(dirCtx).search(with(equal("cn=Bob,ou=people")),
with(equal("(userPassword={0})")),
with(aNonNull(Object[].class)),
@ -70,6 +71,6 @@ public class PasswordComparisonAuthenticatorMockTests {
authenticator.authenticate(new UsernamePasswordAuthenticationToken("Bob","bobspassword"));
context.assertIsSatisfied();
jmock.assertIsSatisfied();
}
}