浏览代码

SEC-904: Test module updates

Luke Taylor 17 年之前
父节点
当前提交
8e0a6b9d1a

+ 22 - 0
sandbox/itest/context/pom.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-itest</artifactId>
+        <version>2.0.4-SNAPSHOT</version>
+    </parent>
+    <artifactId>spring-security-itest-context</artifactId>
+    <name>Spring Security - Miscellaneous Application Context Integration Tests</name>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.4</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

+ 21 - 0
sandbox/itest/context/src/main/java/org/springframework/security/integration/UserDetailsServiceImpl.java

@@ -0,0 +1,21 @@
+package org.springframework.security.integration;
+
+import org.springframework.beans.factory.annotation.Required;
+import org.springframework.security.userdetails.UserDetails;
+import org.springframework.security.userdetails.UserDetailsService;
+import org.springframework.transaction.annotation.Transactional;
+
+public class UserDetailsServiceImpl implements UserDetailsService{
+
+	private UserRepository userRepository;
+	
+	@Transactional(readOnly=true)
+	public UserDetails loadUserByUsername(String username) {
+		return null;
+	}
+
+	@Required
+	public void setUserRepository(UserRepository userRepository) {
+		this.userRepository = userRepository;
+	}
+}

+ 7 - 0
sandbox/itest/context/src/main/java/org/springframework/security/integration/UserRepository.java

@@ -0,0 +1,7 @@
+package org.springframework.security.integration;
+
+public interface UserRepository {
+
+	public void doSomething();
+	
+}

+ 23 - 0
sandbox/itest/context/src/test/java/org/springframework/security/integration/SEC933ApplicationContextTests.java

@@ -0,0 +1,23 @@
+package org.springframework.security.integration;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.userdetails.UserDetailsService;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@ContextConfiguration(locations={"/sec-933-app-context.xml"})
+@RunWith(SpringJUnit4ClassRunner.class)
+public class SEC933ApplicationContextTests {
+
+	@Autowired
+	private UserDetailsService userDetailsService;
+	
+	@Test
+	public void testSimpleApplicationContextBootstrap() throws Exception {
+		assertNotNull(userDetailsService);
+	}
+}

+ 7 - 0
sandbox/itest/context/src/test/java/org/springframework/security/integration/StubUserRepository.java

@@ -0,0 +1,7 @@
+package org.springframework.security.integration;
+
+public class StubUserRepository implements UserRepository {
+
+	public void doSomething() {
+	}
+}

+ 30 - 0
sandbox/itest/context/src/test/resources/sec-933-app-context.xml

@@ -0,0 +1,30 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:aop="http://www.springframework.org/schema/aop"
+	xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:security="http://www.springframework.org/schema/security"
+	xsi:schemaLocation="
+	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+	http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd">
+
+
+	<bean id="userRepository" class="org.springframework.security.integration.StubUserRepository"/>
+
+	<security:authentication-provider
+		user-service-ref="userDetailsService" />
+		
+	<bean id="userDetailsService" class="org.springframework.security.integration.UserDetailsServiceImpl">
+		<property name="userRepository" ref="userRepository"/>
+	</bean>
+
+	<security:global-method-security>
+		<security:protect-pointcut
+			expression="execution(* org.springframework.security.integration.*Repository+.*(..))"
+			access="ROLE_LOGGEDIN" />
+	</security:global-method-security>
+	
+	<aop:aspectj-autoproxy/>
+	
+</beans>

+ 0 - 1
sandbox/itest/misc/src/main/resources/log4j.properties

@@ -4,5 +4,4 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
 
-log4j.category.org.mortbay.log=INFO
 log4j.category.org.springframework.security=DEBUG

+ 24 - 60
sandbox/itest/pom.xml

@@ -1,12 +1,5 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-<!--        
-    <parent>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-parent</artifactId>
-        <version>2.0.3-SNAPSHOT</version>
-    </parent>
--->    
+    <modelVersion>4.0.0</modelVersion>   
     <groupId>org.springframework.security</groupId>
     <artifactId>spring-security-itest</artifactId>
     <name>Spring Security - Integration Tests</name>
@@ -15,24 +8,9 @@
     <modules>
         <module>web</module>
         <!-- module>webflow</module-->
-        <module>misc</module>
+        <module>context</module>
     </modules>
-    <dependencies>
-        <dependency>
-          <groupId>org.testng</groupId>
-          <artifactId>testng</artifactId>
-          <version>5.8</version>
-          <scope>test</scope>
-          <classifier>jdk15</classifier>
-        </dependency>
-<!--                
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.4</version>
-            <scope>test</scope>
-        </dependency>
--->        
+    <dependencies>     
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring</artifactId>
@@ -44,6 +22,17 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>2.5.5</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>        
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-core</artifactId>
@@ -82,6 +71,16 @@
                 </exclusion>
             </exclusions>            
         </dependency>
+	    <dependency>
+	        <groupId>org.aspectj</groupId>
+		    <artifactId>aspectjrt</artifactId>
+		    <version>1.6.1</version>
+	    </dependency>
+	    <dependency>
+	        <groupId>org.aspectj</groupId>
+		    <artifactId>aspectjweaver</artifactId>
+		    <version>1.6.1</version>
+	    </dependency>	            
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
@@ -112,41 +111,6 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>jwebunit</groupId>
-            <artifactId>jwebunit</artifactId>
-            <version>1.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty</artifactId>
-            <version>${jetty.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-naming</artifactId>
-            <version>${jetty.version}</version>
-            <scope>test</scope>
-        </dependency>        
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jetty-plus</artifactId>
-            <version>${jetty.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jsp-2.1</artifactId>
-            <version>${jetty.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>jsp-api-2.1</artifactId>
-            <version>${jetty.version}</version>
-        </dependency>
         <dependency>
             <groupId>org.springframework.ldap</groupId>
             <artifactId>spring-ldap</artifactId>

+ 46 - 2
sandbox/itest/web/pom.xml

@@ -10,8 +10,51 @@
     <artifactId>spring-security-itest-web</artifactId>
     <name>Spring Security - Web Integration Tests</name>
     <packaging>war</packaging>
-<!--
+
     <dependencies>
+        <dependency>
+          <groupId>org.testng</groupId>
+          <artifactId>testng</artifactId>
+          <version>5.8</version>
+          <scope>test</scope>
+          <classifier>jdk15</classifier>
+        </dependency>
+        <dependency>
+            <groupId>jwebunit</groupId>
+            <artifactId>jwebunit</artifactId>
+            <version>1.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-naming</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>        
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jetty-plus</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jsp-2.1</artifactId>
+            <version>${jetty.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>jsp-api-2.1</artifactId>
+            <version>${jetty.version}</version>
+        </dependency>        
+<!--                
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>jstl</artifactId>
@@ -24,8 +67,9 @@
             <scope>runtime</scope>
             <version>1.1.2</version>
         </dependency>
+-->        
     </dependencies>
--->
+
 <!-- 
     <build>
         <plugins>

+ 19 - 0
sandbox/itest/web/src/main/webapp/WEB-INF/custom-filters.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:sec="http://www.springframework.org/schema/security"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd">
+
+    <!-- A second APF in addition to the standard namespace one -->
+    <bean name="formLoginFilter2" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter">
+        <sec:custom-filter after="AUTHENTICATION_PROCESSING_FILTER"/>
+        <property name="filterProcessesUrl" value="/j_spring_security_check_2"/>
+    </bean>
+
+
+    <bean name="switchUserFilter" class="org.springframework.security.ui.switchuser.SwitchUserProcessingFilter">
+        <sec:custom-filter position="SWITCH_USER_FILTER"/>
+    </bean>
+</beans>