8 changed files with 292 additions and 0 deletions
@ -0,0 +1,92 @@ |
|||||||
|
<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-samples</artifactId> |
||||||
|
<version>2.0-SNAPSHOT</version> |
||||||
|
</parent> |
||||||
|
<groupId>org.springframework.security</groupId> |
||||||
|
<artifactId>spring-security-samples-ldap</artifactId> |
||||||
|
<name>Spring Security - Ldap Sample</name> |
||||||
|
<packaging>war</packaging> |
||||||
|
<dependencies> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.security</groupId> |
||||||
|
<artifactId>spring-security-core</artifactId> |
||||||
|
<version>${project.version}</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.security</groupId> |
||||||
|
<artifactId>spring-security-core-tiger</artifactId> |
||||||
|
<version>${project.version}</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework</groupId> |
||||||
|
<artifactId>spring-web</artifactId> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework</groupId> |
||||||
|
<artifactId>spring-webmvc</artifactId> |
||||||
|
<version>${spring.version}</version> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework</groupId> |
||||||
|
<artifactId>spring-jdbc</artifactId> |
||||||
|
<scope>runtime</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework</groupId> |
||||||
|
<artifactId>spring-aop</artifactId> |
||||||
|
<scope>runtime</scope> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.directory.server</groupId> |
||||||
|
<artifactId>apacheds-core</artifactId> |
||||||
|
<version>1.0.2</version> |
||||||
|
<scope>compile</scope> |
||||||
|
<optional>true</optional> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.apache.directory.server</groupId> |
||||||
|
<artifactId>apacheds-server-jndi</artifactId> |
||||||
|
<version>1.0.2</version> |
||||||
|
<scope>compile</scope> |
||||||
|
<optional>true</optional> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.slf4j</groupId> |
||||||
|
<artifactId>slf4j-log4j12</artifactId> |
||||||
|
<version>1.4.3</version> |
||||||
|
<scope>runtime</scope> |
||||||
|
<optional>true</optional> |
||||||
|
</dependency> |
||||||
|
<dependency> |
||||||
|
<groupId>org.springframework.ldap</groupId> |
||||||
|
<artifactId>spring-ldap</artifactId> |
||||||
|
<version>1.2.1</version> |
||||||
|
<optional>true</optional> |
||||||
|
</dependency> |
||||||
|
</dependencies> |
||||||
|
|
||||||
|
<build> |
||||||
|
<plugins> |
||||||
|
<plugin> |
||||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||||
|
<configuration> |
||||||
|
<source>1.5</source> |
||||||
|
<target>1.5</target> |
||||||
|
</configuration> |
||||||
|
</plugin> |
||||||
|
<plugin> |
||||||
|
<groupId>org.mortbay.jetty</groupId> |
||||||
|
<artifactId>maven-jetty-plugin</artifactId> |
||||||
|
<version>6.1.7</version> |
||||||
|
<configuration> |
||||||
|
<contextPath>/ldap</contextPath> |
||||||
|
</configuration> |
||||||
|
</plugin> |
||||||
|
</plugins> |
||||||
|
</build> |
||||||
|
|
||||||
|
</project> |
||||||
@ -0,0 +1,32 @@ |
|||||||
|
<beans:beans xmlns="http://www.springframework.org/schema/security" |
||||||
|
xmlns:beans="http://www.springframework.org/schema/beans" |
||||||
|
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.xsd"> |
||||||
|
|
||||||
|
<http> |
||||||
|
<intercept-url pattern="/secure/extreme/**" access="ROLE_SUPERVISOR"/> |
||||||
|
<intercept-url pattern="/secure/**" access="IS_AUTHENTICATED_REMEMBERED" /> |
||||||
|
<intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> |
||||||
|
|
||||||
|
<form-login /> |
||||||
|
<anonymous /> |
||||||
|
<logout /> |
||||||
|
</http> |
||||||
|
|
||||||
|
<!-- |
||||||
|
Usernames/Passwords are |
||||||
|
rod/koala |
||||||
|
dianne/emu |
||||||
|
scott/wombat |
||||||
|
--> |
||||||
|
<ldap-server ldif="classpath:users.ldif" /> |
||||||
|
|
||||||
|
<ldap-authentication-provider |
||||||
|
group-search-filter="member={0}" |
||||||
|
group-search-base="ou=groups" |
||||||
|
user-search-base="ou=people" |
||||||
|
user-search-filter="uid={0}" |
||||||
|
/> |
||||||
|
|
||||||
|
</beans:beans> |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
# Global logging configuration |
||||||
|
log4j.rootLogger=INFO, stdout, fileout |
||||||
|
|
||||||
|
log4j.logger.org.springframework.security=DEBUG, stdout, fileout |
||||||
|
|
||||||
|
# Console output... |
||||||
|
log4j.appender.stdout=org.apache.log4j.ConsoleAppender |
||||||
|
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout |
||||||
|
log4j.appender.stdout.layout.conversionPattern=[%p,%c{1},%t] %m%n |
||||||
|
|
||||||
|
# Rolling log file output... |
||||||
|
log4j.appender.fileout=org.apache.log4j.RollingFileAppender |
||||||
|
log4j.appender.fileout.File=spring-security-ldap.log |
||||||
|
#log4j.appender.fileout.File=${webapp.root}/WEB-INF/log4j.log |
||||||
|
log4j.appender.fileout.MaxFileSize=1024KB |
||||||
|
log4j.appender.fileout.MaxBackupIndex=1 |
||||||
|
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout |
||||||
|
log4j.appender.fileout.layout.conversionPattern=%d{ABSOLUTE} %5p %c{1},%t:%L - %m%n |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,60 @@ |
|||||||
|
dn: ou=groups,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: organizationalUnit |
||||||
|
ou: groups |
||||||
|
|
||||||
|
dn: ou=people,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: organizationalUnit |
||||||
|
ou: people |
||||||
|
|
||||||
|
dn: uid=rod,ou=people,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: person |
||||||
|
objectclass: organizationalPerson |
||||||
|
objectclass: inetOrgPerson |
||||||
|
cn: Rod Johnson |
||||||
|
sn: Johnson |
||||||
|
uid: rod |
||||||
|
userPassword: koala |
||||||
|
|
||||||
|
dn: uid=dianne,ou=people,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: person |
||||||
|
objectclass: organizationalPerson |
||||||
|
objectclass: inetOrgPerson |
||||||
|
cn: Dianne Emu |
||||||
|
sn: Emu |
||||||
|
uid: dianne |
||||||
|
userPassword: emu |
||||||
|
|
||||||
|
dn: uid=scott,ou=people,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: person |
||||||
|
objectclass: organizationalPerson |
||||||
|
objectclass: inetOrgPerson |
||||||
|
cn: Scott |
||||||
|
sn: Wombat |
||||||
|
uid: scott |
||||||
|
userPassword: wombat |
||||||
|
|
||||||
|
dn: cn=user,ou=groups,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: groupOfNames |
||||||
|
cn: user |
||||||
|
member: uid=rod,ou=people,dc=springframework,dc=org |
||||||
|
member: uid=dianne,ou=people,dc=springframework,dc=org |
||||||
|
member: uid=scott,ou=people,dc=springframework,dc=org |
||||||
|
|
||||||
|
dn: cn=teller,ou=groups,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: groupOfNames |
||||||
|
cn: teller |
||||||
|
member: uid=rod,ou=people,dc=springframework,dc=org |
||||||
|
member: dianne=rod,ou=people,dc=springframework,dc=org |
||||||
|
|
||||||
|
dn: cn=supervisor,ou=groups,dc=springframework,dc=org |
||||||
|
objectclass: top |
||||||
|
objectclass: groupOfNames |
||||||
|
cn: supervisor |
||||||
|
member: uid=rod,ou=people,dc=springframework,dc=org |
||||||
@ -0,0 +1,52 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<!-- |
||||||
|
- Tutorial web application |
||||||
|
- |
||||||
|
- $Id: web.xml 2476 2008-01-18 18:17:09Z luke_t $ |
||||||
|
--> |
||||||
|
|
||||||
|
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> |
||||||
|
|
||||||
|
<display-name>Spring Security Preauthentication Demo Application</display-name> |
||||||
|
|
||||||
|
<!-- |
||||||
|
- Location of the XML file that defines the root application context |
||||||
|
- Applied by ContextLoaderListener. |
||||||
|
--> |
||||||
|
<context-param> |
||||||
|
<param-name>contextConfigLocation</param-name> |
||||||
|
<param-value> |
||||||
|
/WEB-INF/applicationContext-security.xml |
||||||
|
</param-value> |
||||||
|
</context-param> |
||||||
|
|
||||||
|
<filter> |
||||||
|
<filter-name>springSecurityFilterChain</filter-name> |
||||||
|
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> |
||||||
|
</filter> |
||||||
|
|
||||||
|
<filter-mapping> |
||||||
|
<filter-name>springSecurityFilterChain</filter-name> |
||||||
|
<url-pattern>/*</url-pattern> |
||||||
|
</filter-mapping> |
||||||
|
|
||||||
|
<!-- |
||||||
|
- Loads the root application context of this web app at startup. |
||||||
|
- The application context is then available via |
||||||
|
- WebApplicationContextUtils.getWebApplicationContext(servletContext). |
||||||
|
--> |
||||||
|
<listener> |
||||||
|
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> |
||||||
|
</listener> |
||||||
|
|
||||||
|
<!-- |
||||||
|
- Publishes events for session creation and destruction through the application |
||||||
|
- context. Optional unless concurrent session control is being used. |
||||||
|
--> |
||||||
|
<listener> |
||||||
|
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class> |
||||||
|
</listener> |
||||||
|
|
||||||
|
</web-app> |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
<html> |
||||||
|
<body> |
||||||
|
<h1>Home Page</h1> |
||||||
|
<p>Anyone can view this page.</p> |
||||||
|
|
||||||
|
<p>Your principal object is....: <%= request.getUserPrincipal() %></p> |
||||||
|
|
||||||
|
<p><a href="secure/index.jsp">Secure page</a></p> |
||||||
|
<p><a href="secure/extreme/index.jsp">Extremely secure page</a></p> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,10 @@ |
|||||||
|
|
||||||
|
<html> |
||||||
|
<body> |
||||||
|
<h1>VERY Secure Page</h1> |
||||||
|
This is a protected page. You can only see me if you are a supervisor. |
||||||
|
|
||||||
|
<p><a href="../../">Home</a> |
||||||
|
<p><a href="../../j_spring_security_logout">Logout</a> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
<html> |
||||||
|
<body> |
||||||
|
<h1>Secure Page</h1> |
||||||
|
This is a protected page. You can get to me if you've been remembered, |
||||||
|
or if you've authenticated this session.<br><br> |
||||||
|
|
||||||
|
<%if (request.isUserInRole("ROLE_SUPERVISOR")) { %> |
||||||
|
You are a supervisor! You can therefore see the <a href="extreme/index.jsp">extremely secure page</a>.<br><br> |
||||||
|
<% } %> |
||||||
|
|
||||||
|
|
||||||
|
<p><a href="../">Home</a> |
||||||
|
<p><a href="../j_spring_security_logout">Logout</a> |
||||||
|
</body> |
||||||
|
</html> |
||||||
Loading…
Reference in new issue