SEC-2194: Add Java Config samples
This commit is contained in:
parent
36418b964d
commit
388a4dd9db
build.gradle
gradle
samples
aspectj-xml
cas/sample-xml
cassample.gradlepom.xml
src
integration-test
groovy/org/springframework/security/samples/cas
AbstractCasTests.groovyCasSampleProxyTests.groovyCasSampleTests.groovyJettyCasService.groovy
modules
pages
resources
main
java/org/springframework/security/samples/cas/web
webapp
concurrency-jc
build.gradlepom.xml
src
main
java/org/springframework/security/samples/config
webapp
test/java/org/springframework/security/samples/config
contacts-xml
client
contacts.gradlepom.xmlsrc
main
java/sample/contact
AddDeleteContactController.javaAddPermission.javaAddPermissionValidator.javaAdminPermissionController.javaClientApplication.javaContact.javaContactDao.javaContactDaoSpring.javaContactManager.javaContactManagerBackend.javaDataSourcePopulator.javaIndexController.javaWebContact.javaWebContactValidator.java
resources
applicationContext-common-authorization.xmlapplicationContext-common-business.xmlapplicationContext-security.xml
webapp
site/resources
test
dms-xml
|
@ -1,4 +1,3 @@
|
||||||
import sun.awt.geom.AreaOp.IntOp;
|
|
||||||
import groovy.text.SimpleTemplateEngine
|
import groovy.text.SimpleTemplateEngine
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
|
@ -48,7 +47,7 @@ ext.javaProjects = subprojects.findAll { project -> project.name != 'docs' && pr
|
||||||
ext.sampleProjects = subprojects.findAll { project -> project.name.startsWith('spring-security-samples') }
|
ext.sampleProjects = subprojects.findAll { project -> project.name.startsWith('spring-security-samples') }
|
||||||
ext.itestProjects = subprojects.findAll { project -> project.name.startsWith('itest') }
|
ext.itestProjects = subprojects.findAll { project -> project.name.startsWith('itest') }
|
||||||
ext.coreModuleProjects = javaProjects - sampleProjects - itestProjects
|
ext.coreModuleProjects = javaProjects - sampleProjects - itestProjects
|
||||||
ext.aspectjProjects = [project(':spring-security-aspects'), project(':spring-security-samples-aspectj')]
|
ext.aspectjProjects = [project(':spring-security-aspects'), project(':spring-security-samples-aspectj-xml')]
|
||||||
|
|
||||||
configure(subprojects - coreModuleProjects) {
|
configure(subprojects - coreModuleProjects) {
|
||||||
tasks.findByPath("artifactoryPublish")?.enabled = false
|
tasks.findByPath("artifactoryPublish")?.enabled = false
|
||||||
|
|
|
@ -62,7 +62,7 @@ configure(allprojects) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// STS-2723
|
// STS-2723
|
||||||
project(':spring-security-samples-aspectj') {
|
project(':spring-security-samples-xmlaspectj') {
|
||||||
task afterEclipseImportAjdtFix {
|
task afterEclipseImportAjdtFix {
|
||||||
ext.srcFile = afterEclipseImport.srcFile
|
ext.srcFile = afterEclipseImport.srcFile
|
||||||
inputs.file srcFile
|
inputs.file srcFile
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.springframework.security</groupId>
|
<groupId>org.springframework.security</groupId>
|
||||||
<artifactId>spring-security-samples-aspectj</artifactId>
|
<artifactId>spring-security-samples-aspectj-xml</artifactId>
|
||||||
<version>3.2.0.CI-SNAPSHOT</version>
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
<name>spring-security-samples-aspectj</name>
|
<name>spring-security-samples-aspectj-xml</name>
|
||||||
<description>spring-security-samples-aspectj</description>
|
<description>spring-security-samples-aspectj-xml</description>
|
||||||
<url>http://springsource.org/spring-security</url>
|
<url>http://springsource.org/spring-security</url>
|
||||||
<organization>
|
<organization>
|
||||||
<name>SpringSource</name>
|
<name>SpringSource</name>
|
|
@ -3,10 +3,10 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.springframework.security</groupId>
|
<groupId>org.springframework.security</groupId>
|
||||||
<artifactId>spring-security-samples-cassample</artifactId>
|
<artifactId>spring-security-samples-cassample-xml</artifactId>
|
||||||
<version>3.2.0.CI-SNAPSHOT</version>
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
<name>spring-security-samples-cassample</name>
|
<name>spring-security-samples-cassample-xml</name>
|
||||||
<description>spring-security-samples-cassample</description>
|
<description>spring-security-samples-cassample-xml</description>
|
||||||
<url>http://springsource.org/spring-security</url>
|
<url>http://springsource.org/spring-security</url>
|
||||||
<organization>
|
<organization>
|
||||||
<name>SpringSource</name>
|
<name>SpringSource</name>
|
|
@ -0,0 +1,36 @@
|
||||||
|
apply plugin: 'war'
|
||||||
|
|
||||||
|
sonarRunner {
|
||||||
|
skipProject = true
|
||||||
|
}
|
||||||
|
|
||||||
|
eclipse {
|
||||||
|
wtp {
|
||||||
|
component {
|
||||||
|
contextPath = 'concurrency'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
|
||||||
|
providedCompile "javax.servlet:javax.servlet-api:3.0.1"
|
||||||
|
|
||||||
|
compile project(":spring-security-config"),
|
||||||
|
project(":spring-security-samples-messages-jc"),
|
||||||
|
project(":spring-security-core"),
|
||||||
|
project(":spring-security-web"),
|
||||||
|
"org.springframework:spring-webmvc:$springVersion",
|
||||||
|
"org.springframework:spring-jdbc:$springVersion",
|
||||||
|
"org.slf4j:slf4j-api:$slf4jVersion",
|
||||||
|
"org.slf4j:log4j-over-slf4j:$slf4jVersion",
|
||||||
|
"org.slf4j:jul-to-slf4j:$slf4jVersion",
|
||||||
|
"org.slf4j:jcl-over-slf4j:$slf4jVersion",
|
||||||
|
"javax.servlet:jstl:1.2",
|
||||||
|
"javax.validation:validation-api:1.0.0.GA",
|
||||||
|
"org.hibernate:hibernate-validator:4.2.0.Final"
|
||||||
|
|
||||||
|
runtime "opensymphony:sitemesh:2.4.2",
|
||||||
|
'cglib:cglib-nodep:2.2.2',
|
||||||
|
'ch.qos.logback:logback-classic:0.9.30'
|
||||||
|
}
|
|
@ -0,0 +1,187 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-samples-concurrency-jc</artifactId>
|
||||||
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
|
<name>spring-security-samples-concurrency-jc</name>
|
||||||
|
<description>spring-security-samples-concurrency-jc</description>
|
||||||
|
<url>http://springsource.org/spring-security</url>
|
||||||
|
<organization>
|
||||||
|
<name>SpringSource</name>
|
||||||
|
<url>http://springsource.org/</url>
|
||||||
|
</organization>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache Software License, Version 2.0</name>
|
||||||
|
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
<distribution>repo</distribution>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>rwinch</id>
|
||||||
|
<name>Rob Winch</name>
|
||||||
|
<email>rwinch@vmware.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:git://github.com/SpringSource/spring-security</connection>
|
||||||
|
<developerConnection>scm:git:git://github.com/SpringSource/spring-security</developerConnection>
|
||||||
|
<url>https://github.com/SpringSource/spring-security</url>
|
||||||
|
</scm>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>jstl</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>1.0.0.GA</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-validator</artifactId>
|
||||||
|
<version>4.2.0.Final</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>jcl-over-slf4j</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>jul-to-slf4j</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>log4j-over-slf4j</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-config</artifactId>
|
||||||
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-core</artifactId>
|
||||||
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-samples-messages-jc</artifactId>
|
||||||
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.security</groupId>
|
||||||
|
<artifactId>spring-security-web</artifactId>
|
||||||
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-core</artifactId>
|
||||||
|
<version>3.2.3.RELEASE</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>commons-logging</artifactId>
|
||||||
|
<groupId>commons-logging</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-jdbc</artifactId>
|
||||||
|
<version>3.2.3.RELEASE</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-webmvc</artifactId>
|
||||||
|
<version>3.2.3.RELEASE</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-logging</groupId>
|
||||||
|
<artifactId>commons-logging</artifactId>
|
||||||
|
<version>1.1.1</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
|
<version>3.0.1</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cglib</groupId>
|
||||||
|
<artifactId>cglib-nodep</artifactId>
|
||||||
|
<version>2.2.2</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
<artifactId>logback-classic</artifactId>
|
||||||
|
<version>0.9.30</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>opensymphony</groupId>
|
||||||
|
<artifactId>sitemesh</artifactId>
|
||||||
|
<version>2.4.2</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
<artifactId>logback-classic</artifactId>
|
||||||
|
<version>0.9.29</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.7</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.easytesting</groupId>
|
||||||
|
<artifactId>fest-assert</artifactId>
|
||||||
|
<version>1.4</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
<version>1.8.5</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-test</artifactId>
|
||||||
|
<version>3.2.3.RELEASE</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
|
@ -0,0 +1,56 @@
|
||||||
|
package org.springframework.security.samples.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
|
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||||
|
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.builders.WebSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
|
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebSecurity
|
||||||
|
@EnableGlobalMethodSecurity(prePostEnabled=true)
|
||||||
|
public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
||||||
|
@Override
|
||||||
|
public void configure(WebSecurity web) throws Exception {
|
||||||
|
web
|
||||||
|
.ignoring()
|
||||||
|
.antMatchers("/resources/**");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void registerAuthentication(
|
||||||
|
AuthenticationManagerBuilder auth) throws Exception {
|
||||||
|
auth
|
||||||
|
.inMemoryAuthentication()
|
||||||
|
.withUser("user").password("password").roles("USER").and()
|
||||||
|
.withUser("admin").password("password").roles("USER", "ADMIN");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Override
|
||||||
|
public AuthenticationManager authenticationManagerBean()
|
||||||
|
throws Exception {
|
||||||
|
return super.authenticationManagerBean();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure(
|
||||||
|
HttpSecurity http) throws Exception {
|
||||||
|
http
|
||||||
|
.authorizeRequests()
|
||||||
|
.antMatchers("/users**","/sessions/**").hasRole("ADMIN")
|
||||||
|
.antMatchers("/resources/**","/signup").permitAll()
|
||||||
|
.anyRequest().hasRole("USER")
|
||||||
|
.and()
|
||||||
|
.formLogin()
|
||||||
|
.permitAll()
|
||||||
|
.and()
|
||||||
|
.sessionManagement()
|
||||||
|
.maximumSessions(1)
|
||||||
|
.expiredUrl("/login?expired");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<decorators defaultdir="/WEB-INF/decorators">
|
||||||
|
<decorator name="main" page="main.jsp">
|
||||||
|
<pattern>/*</pattern>
|
||||||
|
</decorator>
|
||||||
|
</decorators>
|
|
@ -0,0 +1,130 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
|
||||||
|
xmlns:decorator="http://www.opensymphony.com/sitemesh/decorator"
|
||||||
|
xmlns:page="http://www.opensymphony.com/sitemesh/page"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:sec="http://www.springframework.org/security/tags"
|
||||||
|
xmlns:tags="urn:jsptagdir:/WEB-INF/tags" version="2.0">
|
||||||
|
|
||||||
|
<jsp:directive.page contentType="text/html" pageEncoding="UTF-8" />
|
||||||
|
<jsp:output omit-xml-declaration="true" />
|
||||||
|
<jsp:output doctype-root-element="HTML"
|
||||||
|
doctype-system="about:legacy-compat" />
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>SecureMail: <decorator:title/></title>
|
||||||
|
<c:url var="faviconUrl" value="/resources/img/favicon.ico"/>
|
||||||
|
<link rel="icon" type="image/x-icon" href="${faviconUrl}"/>
|
||||||
|
<c:url var="bootstrapUrl" value="/resources/css/bootstrap.css"/>
|
||||||
|
<link href="${bootstrapUrl}" rel="stylesheet"></link>
|
||||||
|
<style type="text/css">
|
||||||
|
/* Sticky footer styles
|
||||||
|
-------------------------------------------------- */
|
||||||
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
/* The html and body elements cannot have any padding or margin. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wrapper for page content to push down footer */
|
||||||
|
#wrap {
|
||||||
|
min-height: 100%;
|
||||||
|
height: auto !important;
|
||||||
|
height: 100%;
|
||||||
|
/* Negative indent footer by it's height */
|
||||||
|
margin: 0 auto -60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the fixed height of the footer here */
|
||||||
|
#push,
|
||||||
|
#footer {
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
#footer {
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Lastly, apply responsive CSS fixes as necessary */
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
#footer {
|
||||||
|
margin-left: -20px;
|
||||||
|
margin-right: -20px;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Custom page CSS
|
||||||
|
-------------------------------------------------- */
|
||||||
|
/* Not required for template or sticky footer method. */
|
||||||
|
|
||||||
|
.container {
|
||||||
|
width: auto;
|
||||||
|
max-width: 680px;
|
||||||
|
}
|
||||||
|
.container .credit {
|
||||||
|
margin: 20px 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<c:url var="bootstrapResponsiveUrl" value="/resources/css/bootstrap-responsive.css"/>
|
||||||
|
<link href="${bootstrapResponsiveUrl}" rel="stylesheet"></link>
|
||||||
|
|
||||||
|
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="wrap">
|
||||||
|
<div class="navbar navbar-inverse navbar-static-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</a>
|
||||||
|
<c:url var="homeUrl" value="/"/>
|
||||||
|
<c:url var="logoUrl" value="/resources/img/logo.png"/>
|
||||||
|
<a class="brand" href="${homeUrl}"><img src="${logoUrl}" alt="Spring Security Sample"/></a>
|
||||||
|
<div class="nav-collapse collapse">
|
||||||
|
<ul class="nav">
|
||||||
|
<c:url var="inboxUrl" value="/"/>
|
||||||
|
<li><a href="${inboxUrl}">Inbox</a></li>
|
||||||
|
<c:url var="composeUrl" value="/?form"/>
|
||||||
|
<li><a href="${composeUrl}">Compose</a></li>
|
||||||
|
<c:url var="logoutUrl" value="/logout"/>
|
||||||
|
<li><a href="${logoutUrl}">Log out</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Begin page content -->
|
||||||
|
<div class="container">
|
||||||
|
<decorator:body/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="push"><!-- --></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="muted credit">Visit the <a href="#">Spring Security</a> site for more <a href="#">samples</a>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,21 @@
|
||||||
|
<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:sec="http://www.springframework.org/security/tags"
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
|
||||||
|
<jsp:output omit-xml-declaration="yes" />
|
||||||
|
<jsp:directive.attribute name="url" type="java.lang.String" required="true" description="The url to go to"/>
|
||||||
|
<jsp:directive.attribute name="text" type="java.lang.String" required="true" description="The text for the tab"/>
|
||||||
|
<jsp:directive.attribute name="id" type="java.lang.String" required="true" description="The id for the tab"/>
|
||||||
|
|
||||||
|
<sec:authorize url="${url}">
|
||||||
|
<c:url var="url" value="${url}"/>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${id == tab}">
|
||||||
|
<c:set var="css" value=" selected"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:set var="css" value=""/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<li class="tab${css}"><a href="${url}">${text}</a></li>
|
||||||
|
</sec:authorize>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<jsp:root
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html"/>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<c:set var="title" value="Access Denied"/>
|
||||||
|
<head>
|
||||||
|
<title>${title}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>${title}</h1>
|
||||||
|
<div class="errors">You do not have sufficient privileges to access this page.</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<jsp:root
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html"/>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<c:set var="title" value="Page Not Found"/>
|
||||||
|
<head>
|
||||||
|
<title>${title}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>${title}</h1>
|
||||||
|
<div class="errors">The requested page could not be found.</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<jsp:root
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html"/>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<c:set var="title" value="Internal Error"/>
|
||||||
|
<head>
|
||||||
|
<title>${title}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>${title}</h1>
|
||||||
|
<div class="errors">An internal error occurred.</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,39 @@
|
||||||
|
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form" version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html" />
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Please Login</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<c:url value="/login" var="loginUrl"/>
|
||||||
|
<form name="f" action="${loginUrl}" method="post">
|
||||||
|
<fieldset>
|
||||||
|
<legend>Please Login</legend>
|
||||||
|
<c:if test="${param.error != null}">
|
||||||
|
<div class="alert alert-error">
|
||||||
|
Failed to login.
|
||||||
|
<c:if test="${SPRING_SECURITY_LAST_EXCEPTION != null}">
|
||||||
|
Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${param.logout != null}">
|
||||||
|
<div class="alert alert-success">
|
||||||
|
You have been logged out.
|
||||||
|
</div>
|
||||||
|
</c:if>
|
||||||
|
<label for="j_username">Username</label>
|
||||||
|
<input type="text" id="j_username" name="username" value="${username}"/>
|
||||||
|
<label for="j_password">Password</label>
|
||||||
|
<input type="password" id="j_password" name="password"/>
|
||||||
|
<div class="form-actions">
|
||||||
|
<button type="submit" class="btn">Log in</button>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,26 @@
|
||||||
|
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||||
|
xmlns:form="http://www.springframework.org/tags/form" version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html" />
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Compose</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Messages : Create</h1>
|
||||||
|
<form:form action="./" method="post" modelAttribute="message">
|
||||||
|
<form:errors path="*" element="div" cssClass="alert alert-error" />
|
||||||
|
<label for="summary">Summary</label>
|
||||||
|
<form:input type="text" path="summary" class="input-xxlarge" />
|
||||||
|
<label for="text">Message</label>
|
||||||
|
<form:textarea path="text" class="input-xxlarge"></form:textarea>
|
||||||
|
<div class="form-actions">
|
||||||
|
<input type="submit" value="Create" />
|
||||||
|
</div>
|
||||||
|
</form:form>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,40 @@
|
||||||
|
<jsp:root
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
|
||||||
|
version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html"/>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Inbox</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Inbox</h1>
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Created</th>
|
||||||
|
<th>Summary</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:if test="${empty messages}">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2" class="msg">You have not received any mail yet.</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<c:forEach items="${messages}" var="message">
|
||||||
|
<tr>
|
||||||
|
<td><fmt:formatDate value="${message.created.time}"/></td>
|
||||||
|
<spring:url var="messageUrl" value="/{id}">
|
||||||
|
<spring:param name="id" value="${message.id}"/>
|
||||||
|
</spring:url>
|
||||||
|
<td><a href="${messageUrl}"><c:out value="${message.summary}"/></a></td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
|
@ -0,0 +1,24 @@
|
||||||
|
<jsp:root
|
||||||
|
xmlns:jsp="http://java.sun.com/JSP/Page"
|
||||||
|
xmlns:spring="http://www.springframework.org/tags"
|
||||||
|
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
|
||||||
|
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:form="http://www.springframework.org/tags/form"
|
||||||
|
version="2.0">
|
||||||
|
<jsp:directive.page language="java" contentType="text/html"/>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<title><c:out value="${message.summary}"/></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Message : <c:out value="${message.summary}"/></h1>
|
||||||
|
<dl>
|
||||||
|
<dt>Created</dt>
|
||||||
|
<dd><fmt:formatDate value="${message.created.time}"/></dd>
|
||||||
|
<dt>Message</dt>
|
||||||
|
<dd><c:out value="${message.text}"/></dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</jsp:root>
|
1092
samples/concurrency-jc/src/main/webapp/resources/css/bootstrap-responsive.css
vendored
Normal file
1092
samples/concurrency-jc/src/main/webapp/resources/css/bootstrap-responsive.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: 16px | Height: 16px | Size: 1.1 KiB |
Binary file not shown.
After (image error) Size: 1.1 KiB |
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2002-2013 the original author or authors.
|
||||||
|
*
|
||||||
|
* 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.samples.config;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Rob Winch
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@ContextConfiguration(classes=SecurityConfig.class)
|
||||||
|
public class SecurityConfigTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void securityConfigurationLoads() {}
|
||||||
|
}
|
|
@ -3,10 +3,10 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.springframework.security</groupId>
|
<groupId>org.springframework.security</groupId>
|
||||||
<artifactId>spring-security-samples-contacts</artifactId>
|
<artifactId>spring-security-samples-contacts-xml</artifactId>
|
||||||
<version>3.2.0.CI-SNAPSHOT</version>
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
<name>spring-security-samples-contacts</name>
|
<name>spring-security-samples-contacts-xml</name>
|
||||||
<description>spring-security-samples-contacts</description>
|
<description>spring-security-samples-contacts-xml</description>
|
||||||
<url>http://springsource.org/spring-security</url>
|
<url>http://springsource.org/spring-security</url>
|
||||||
<organization>
|
<organization>
|
||||||
<name>SpringSource</name>
|
<name>SpringSource</name>
|
|
@ -3,10 +3,10 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.springframework.security</groupId>
|
<groupId>org.springframework.security</groupId>
|
||||||
<artifactId>spring-security-samples-dms</artifactId>
|
<artifactId>spring-security-samples-dms-xml</artifactId>
|
||||||
<version>3.2.0.CI-SNAPSHOT</version>
|
<version>3.2.0.CI-SNAPSHOT</version>
|
||||||
<name>spring-security-samples-dms</name>
|
<name>spring-security-samples-dms-xml</name>
|
||||||
<description>spring-security-samples-dms</description>
|
<description>spring-security-samples-dms-xml</description>
|
||||||
<url>http://springsource.org/spring-security</url>
|
<url>http://springsource.org/spring-security</url>
|
||||||
<organization>
|
<organization>
|
||||||
<name>SpringSource</name>
|
<name>SpringSource</name>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue