mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-07-08 19:42:48 +00:00
SEC-313: Add integration test for Contacts.
This commit is contained in:
parent
84671f9d68
commit
508966f0c7
26
.classpath
26
.classpath
@ -1,22 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="samples/attributes/src/main/java"/>
|
||||
<classpathentry kind="src" path="core/src/main/java"/>
|
||||
<classpathentry kind="src" path="core/src/main/resources"/>
|
||||
<classpathentry kind="src" path="core/src/test/java"/>
|
||||
<classpathentry kind="src" path="core/src/test/resources"/>
|
||||
<classpathentry kind="src" path="sandbox/other/src/main/java"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/test/resources"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/contacts/src/main/java"/>
|
||||
<classpathentry kind="src" path="samples/contacts/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/contacts/src/test/java"/>
|
||||
<classpathentry kind="src" path="samples/contacts/src/test/resources"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/main/java"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/test/java"/>
|
||||
<classpathentry kind="src" path="adapters/catalina/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/acegifier/src/test/resources"/>
|
||||
<classpathentry kind="src" path="samples/attributes/src/main/java"/>
|
||||
<classpathentry kind="src" path="samples/attributes/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/attributes/src/test/java"/>
|
||||
<classpathentry kind="src" path="adapters/cas/src/test/resources"/>
|
||||
<classpathentry kind="src" path="adapters/cas/src/main/resources"/>
|
||||
<classpathentry kind="src" path="core/src/main/resources"/>
|
||||
<classpathentry kind="src" path="core/src/test/resources"/>
|
||||
<classpathentry kind="src" path="samples/contacts/src/main/java"/>
|
||||
<classpathentry kind="src" path="adapters/cas/src/main/java"/>
|
||||
<classpathentry kind="src" path="adapters/cas/src/test/java"/>
|
||||
<classpathentry kind="src" path="adapters/catalina/src/main/java"/>
|
||||
<classpathentry kind="src" path="adapters/catalina/src/main/resources"/>
|
||||
<classpathentry kind="src" path="adapters/catalina/src/test/java"/>
|
||||
<classpathentry kind="src" path="adapters/jboss/src/main/java"/>
|
||||
<classpathentry kind="src" path="adapters/jboss/src/test/java"/>
|
||||
@ -24,8 +29,7 @@
|
||||
<classpathentry kind="src" path="adapters/jetty/src/test/java"/>
|
||||
<classpathentry kind="src" path="adapters/resin/src/main/java"/>
|
||||
<classpathentry kind="src" path="adapters/resin/src/test/java"/>
|
||||
<classpathentry kind="src" path="core/src/main/java"/>
|
||||
<classpathentry kind="src" path="core/src/test/java"/>
|
||||
<classpathentry kind="src" path="java"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/com.caucho/jars/resin-3.0.9.jar"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/org.springframework/jars/spring-2.0-m2.jar"/>
|
||||
@ -49,14 +53,14 @@
|
||||
<classpathentry kind="var" path="MAVEN_REPO/javax.servlet/jars/jsp-api-2.0.jar"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/hibernate/jars/hibernate-3.0.3.jar"/>
|
||||
<classpathentry sourcepath="DIST_BASE/commons-beanutils-1.6.1-src/src/java" kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.1.jar"/>
|
||||
<classpathentry kind="src" path="samples/contacts-tiger/src/main/java"/>
|
||||
<classpathentry kind="src" path="core-tiger/src/main/java"/>
|
||||
<classpathentry kind="src" path="core-tiger/src/test/java"/>
|
||||
<classpathentry kind="src" path="core-tiger/src/main/resources"/>
|
||||
<classpathentry kind="src" path="core-tiger/src/test/java"/>
|
||||
<classpathentry kind="src" path="core-tiger/src/test/resources"/>
|
||||
<classpathentry kind="src" path="samples/annotations/src/main/java"/>
|
||||
<classpathentry kind="src" path="samples/annotations/src/main/resources"/>
|
||||
<classpathentry kind="src" path="samples/annotations/src/test/java"/>
|
||||
<classpathentry kind="src" path="samples/contacts-tiger/src/main/java"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/org.samba.jcifs/jars/jcifs-1.2.6.jar"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/dom4j/jars/dom4j-1.6.jar"/>
|
||||
<classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xercesImpl-2.6.2.jar"/>
|
||||
|
@ -21,8 +21,8 @@
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
/WEB-INF/applicationContext-acegi-security.xml
|
||||
/WEB-INF/applicationContext-common-business.xml
|
||||
/WEB-INF/applicationContext-common-authorization.xml
|
||||
classpath:applicationContext-common-business.xml
|
||||
classpath:applicationContext-common-authorization.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
|
@ -21,8 +21,8 @@
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
/WEB-INF/applicationContext-acegi-security.xml
|
||||
/WEB-INF/applicationContext-common-business.xml
|
||||
/WEB-INF/applicationContext-common-authorization.xml
|
||||
classpath:applicationContext-common-business.xml
|
||||
classpath:applicationContext-common-authorization.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
|
@ -21,8 +21,8 @@
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
/WEB-INF/applicationContext-acegi-security.xml
|
||||
/WEB-INF/applicationContext-common-business.xml
|
||||
/WEB-INF/applicationContext-common-authorization.xml
|
||||
classpath:applicationContext-common-business.xml
|
||||
classpath:applicationContext-common-authorization.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
|
@ -21,8 +21,8 @@
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
/WEB-INF/applicationContext-acegi-security.xml
|
||||
/WEB-INF/applicationContext-common-business.xml
|
||||
/WEB-INF/applicationContext-common-authorization.xml
|
||||
classpath:applicationContext-common-business.xml
|
||||
classpath:applicationContext-common-authorization.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
||||
|
@ -21,8 +21,8 @@
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>
|
||||
/WEB-INF/applicationContext-acegi-security.xml
|
||||
/WEB-INF/applicationContext-common-business.xml
|
||||
/WEB-INF/applicationContext-common-authorization.xml
|
||||
classpath:applicationContext-common-business.xml
|
||||
classpath:applicationContext-common-authorization.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
<!--
|
||||
|
@ -0,0 +1,118 @@
|
||||
package sample.contact;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.acegisecurity.Authentication;
|
||||
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
import org.acegisecurity.context.SecurityContextImpl;
|
||||
import org.acegisecurity.context.SecurityContextHolder;
|
||||
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
|
||||
import org.springframework.test.AbstractTransactionalSpringContextTests;
|
||||
|
||||
/**
|
||||
* Provides simplified access to the <code>ContactManager</code> bean and
|
||||
* convenience test support methods.
|
||||
*
|
||||
* @author David Leal
|
||||
*/
|
||||
/**
|
||||
* @author balex
|
||||
*
|
||||
*/
|
||||
public abstract class AbstractContactsSampleTest extends AbstractTransactionalSpringContextTests {
|
||||
|
||||
protected ContactManager contactManager;
|
||||
|
||||
protected String[] getConfigLocations() {
|
||||
setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME);
|
||||
return new String[] { "applicationContext-common-authorization.xml",
|
||||
"applicationContext-common-business.xml",
|
||||
"applicationContext-contacts-test.xml" };
|
||||
}
|
||||
|
||||
/**
|
||||
* Locates the first <code>Contact</code> of the exact name specified.
|
||||
*
|
||||
* <p>
|
||||
* Uses the {@link ContactManager#getAll()} method.
|
||||
* </p>
|
||||
*
|
||||
* @param id
|
||||
* Identify of the contact to locate (must be an exact match)
|
||||
*
|
||||
* @return the domain or <code>null</code> if not found
|
||||
*/
|
||||
protected Contact getContact(String id) {
|
||||
List contacts = contactManager.getAll();
|
||||
Iterator iter = contacts.iterator();
|
||||
|
||||
while (iter.hasNext()) {
|
||||
Contact contact = (Contact) iter.next();
|
||||
|
||||
if (contact.getId().equals(id)) {
|
||||
return contact;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void assertContainsContact(String id, List contacts) {
|
||||
Iterator iter = contacts.iterator();
|
||||
System.out.println(contacts);
|
||||
while (iter.hasNext()) {
|
||||
Contact contact = (Contact) iter.next();
|
||||
|
||||
if (contact.getId().toString().equals(id)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
fail("List of contacts should have contained: " + id);
|
||||
}
|
||||
|
||||
protected void assertNotContainsContact(String id, List contacts) {
|
||||
Iterator iter = contacts.iterator();
|
||||
|
||||
while (iter.hasNext()) {
|
||||
Contact domain = (Contact) iter.next();
|
||||
|
||||
if (domain.getId().toString().equals(id)) {
|
||||
fail("List of contact should NOT (but did) contain: " + id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void makeActiveUser(String username) {
|
||||
String password = "";
|
||||
|
||||
if ("marissa".equals(username)) {
|
||||
password = "koala";
|
||||
} else if ("dianne".equals(username)) {
|
||||
password = "emu";
|
||||
} else if ("scott".equals(username)) {
|
||||
password = "wombat";
|
||||
} else if ("peter".equals(username)) {
|
||||
password = "opal";
|
||||
}
|
||||
|
||||
Authentication authRequest = new UsernamePasswordAuthenticationToken(
|
||||
username, password);
|
||||
SecurityContextImpl secureContext = new SecurityContextImpl();
|
||||
secureContext.setAuthentication(authRequest);
|
||||
SecurityContextHolder.setContext(secureContext);
|
||||
}
|
||||
|
||||
protected void onTearDownInTransaction() {
|
||||
destroySecureContext();
|
||||
}
|
||||
|
||||
private static void destroySecureContext() {
|
||||
SecurityContextHolder.setContext(new SecurityContextImpl());
|
||||
}
|
||||
|
||||
public void setContactManager(ContactManager contactManager) {
|
||||
this.contactManager = contactManager;
|
||||
}
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
/* 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 sample.contact;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* Tests {@link
|
||||
* com.acegitech.dns.domain.DomainManager#findAllDomainsLike(String)}.
|
||||
*
|
||||
* @author David Leal
|
||||
*/
|
||||
public class GetAllContactsTests extends AbstractContactsSampleTest {
|
||||
//~ Methods ================================================================
|
||||
|
||||
public void testFindAllDomainsLikeAsDianne() {
|
||||
makeActiveUser("dianne"); // has ROLE_USER
|
||||
|
||||
List contacts = contactManager.getAll();
|
||||
assertEquals(4, contacts.size());
|
||||
|
||||
assertContainsContact(Long.toString(4), contacts);
|
||||
assertContainsContact(Long.toString(5), contacts);
|
||||
assertContainsContact(Long.toString(6), contacts);
|
||||
assertContainsContact(Long.toString(8), contacts);
|
||||
|
||||
assertNotContainsContact(Long.toString(1), contacts);
|
||||
assertNotContainsContact(Long.toString(2), contacts);
|
||||
assertNotContainsContact(Long.toString(3), contacts);
|
||||
|
||||
}
|
||||
|
||||
public void testFindAllDomainsLikeAsMarissa() {
|
||||
makeActiveUser("marissa"); // has ROLE_SUPERVISOR
|
||||
|
||||
List contacts = contactManager.getAll();
|
||||
|
||||
assertEquals(4, contacts.size());
|
||||
|
||||
assertContainsContact(Long.toString(1), contacts);
|
||||
assertContainsContact(Long.toString(2), contacts);
|
||||
assertContainsContact(Long.toString(3), contacts);
|
||||
assertContainsContact(Long.toString(4), contacts);
|
||||
|
||||
assertNotContainsContact(Long.toString(5), contacts);
|
||||
|
||||
}
|
||||
|
||||
public void testFindAllDomainsLikeAsScott() {
|
||||
makeActiveUser("scott"); // has ROLE_USER
|
||||
|
||||
List contacts = contactManager.getAll();
|
||||
|
||||
assertEquals(5, contacts.size());
|
||||
|
||||
assertContainsContact(Long.toString(4), contacts);
|
||||
assertContainsContact(Long.toString(6), contacts);
|
||||
assertContainsContact(Long.toString(7), contacts);
|
||||
assertContainsContact(Long.toString(8), contacts);
|
||||
assertContainsContact(Long.toString(9), contacts);
|
||||
|
||||
assertNotContainsContact(Long.toString(1), contacts);
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
|
||||
<!--
|
||||
- Application context containing authentication beans.
|
||||
-
|
||||
- Only used by unit tests.
|
||||
-
|
||||
- $Id$
|
||||
-->
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- ======================== AUTHENTICATION ======================= -->
|
||||
|
||||
<bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
|
||||
<property name="providers">
|
||||
<list>
|
||||
<ref local="daoAuthenticationProvider"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
|
||||
<property name="userDetailsService"><ref local="jdbcDaoImpl"/></property>
|
||||
<property name="passwordEncoder"><ref local="passwordEncoder"/></property>
|
||||
</bean>
|
||||
|
||||
<bean id="jdbcDaoImpl" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
|
||||
<property name="dataSource"><ref bean="dataSource"/></property>
|
||||
</bean>
|
||||
|
||||
<bean id="passwordEncoder" class="org.acegisecurity.providers.encoding.Md5PasswordEncoder"/>
|
||||
|
||||
<!-- Automatically receives AuthenticationEvent messages -->
|
||||
<bean id="loggerListener" class="org.acegisecurity.event.authentication.LoggerListener"/>
|
||||
|
||||
</beans>
|
Loading…
x
Reference in New Issue
Block a user