Use xml / javaconfig folders for samples
Fixes gh-3752
This commit is contained in:
11
samples/xml/gae/src/main/webapp/WEB-INF/appengine-web.xml
Normal file
11
samples/xml/gae/src/main/webapp/WEB-INF/appengine-web.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
|
||||
<application>gaespringsec</application>
|
||||
<version>1</version>
|
||||
<sessions-enabled>true</sessions-enabled>
|
||||
<threadsafe>true</threadsafe>
|
||||
|
||||
<system-properties>
|
||||
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
|
||||
</system-properties>
|
||||
</appengine-web-app>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<b:beans xmlns="http://www.springframework.org/schema/security"
|
||||
xmlns:b="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-3.0.xsd
|
||||
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
|
||||
|
||||
<http pattern="/_ah/**" security="none"/>
|
||||
<http pattern="/static/**" security="none" />
|
||||
<http pattern="/favicon.ico" security="none" />
|
||||
<http pattern="/loggedout.htm" security="none" />
|
||||
<http pattern="/disabled.htm" security="none" />
|
||||
|
||||
<http use-expressions="true" entry-point-ref="gaeEntryPoint">
|
||||
<intercept-url pattern="/" access="permitAll" />
|
||||
<intercept-url pattern="/logout.htm" access="permitAll" />
|
||||
<intercept-url pattern="/register.htm*" access="hasRole('NEW_USER')" />
|
||||
<intercept-url pattern="/**" access="hasRole('USER')" />
|
||||
<custom-filter position="PRE_AUTH_FILTER" ref="gaeFilter" />
|
||||
</http>
|
||||
|
||||
<b:bean id="gaeEntryPoint" class="samples.gae.security.GoogleAccountsAuthenticationEntryPoint" />
|
||||
|
||||
<b:bean id="gaeFilter" class="samples.gae.security.GaeAuthenticationFilter">
|
||||
<b:property name="authenticationManager" ref="authenticationManager"/>
|
||||
<b:property name="failureHandler">
|
||||
<b:bean class="org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler">
|
||||
<b:property name="exceptionMappings">
|
||||
<b:map>
|
||||
<b:entry key="org.springframework.security.authentication.DisabledException" value="/disabled.htm" />
|
||||
</b:map>
|
||||
</b:property>
|
||||
</b:bean>
|
||||
</b:property>
|
||||
</b:bean>
|
||||
|
||||
<authentication-manager alias="authenticationManager">
|
||||
<authentication-provider ref="gaeAuthenticationProvider"/>
|
||||
</authentication-manager>
|
||||
|
||||
<b:bean id="gaeAuthenticationProvider" class="samples.gae.security.GoogleAccountsAuthenticationProvider">
|
||||
<b:property name="userRegistry" ref="userRegistry" />
|
||||
</b:bean>
|
||||
|
||||
<b:bean id="userRegistry" class="samples.gae.users.GaeDatastoreUserRegistry" />
|
||||
|
||||
</b:beans>
|
||||
@@ -0,0 +1,2 @@
|
||||
samples.gae.forename=Must be a valid forename
|
||||
samples.gae.surname=Must be a valid surname
|
||||
25
samples/xml/gae/src/main/webapp/WEB-INF/gae-servlet.xml
Normal file
25
samples/xml/gae/src/main/webapp/WEB-INF/gae-servlet.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
|
||||
|
||||
<!-- Enables JSR-303 -->
|
||||
<mvc:annotation-driven/>
|
||||
|
||||
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
|
||||
|
||||
<context:component-scan base-package="samples.gae"/>
|
||||
<context:annotation-config />
|
||||
|
||||
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
|
||||
<property name="basename" value="messages"/>
|
||||
</bean>
|
||||
|
||||
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
|
||||
<property name="prefix" value="/WEB-INF/jsp/"/>
|
||||
<property name="suffix" value=".jsp"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
16
samples/xml/gae/src/main/webapp/WEB-INF/jsp/disabled.jsp
Normal file
16
samples/xml/gae/src/main/webapp/WEB-INF/jsp/disabled.jsp
Normal file
@@ -0,0 +1,16 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<%@page session="false" %>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="/static/css/gae.css" type="text/css" />
|
||||
<title>Disabled Account</title></head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<p>Sorry, it looks like your account has been disabled for some reason...</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
26
samples/xml/gae/src/main/webapp/WEB-INF/jsp/home.jsp
Normal file
26
samples/xml/gae/src/main/webapp/WEB-INF/jsp/home.jsp
Normal file
@@ -0,0 +1,26 @@
|
||||
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
|
||||
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="/static/css/gae.css" type="text/css" />
|
||||
<title>Home Page</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<h3>The Home Page</h3>
|
||||
<p>Welcome back <sec:authentication property="principal.nickname"/>.</p>
|
||||
<p>
|
||||
You can get to this page if you have authenticated and are a registered user.
|
||||
You are registered as
|
||||
<sec:authentication property="principal.forename"/> <sec:authentication property="principal.surname"/>.
|
||||
</p>
|
||||
<p>
|
||||
<a href="/logout.htm">Logout</a>.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
33
samples/xml/gae/src/main/webapp/WEB-INF/jsp/landing.jsp
Normal file
33
samples/xml/gae/src/main/webapp/WEB-INF/jsp/landing.jsp
Normal file
@@ -0,0 +1,33 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@page session="false" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="/static/css/gae.css" type="text/css" />
|
||||
<title>Spring Security GAE Sample</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="content">
|
||||
<h3>Spring Security GAE Application</h3>
|
||||
|
||||
<p>
|
||||
This application demonstrates the integration of Spring Security
|
||||
with the services provided by Google App Engine. It shows how to:
|
||||
<ul>
|
||||
<li>Authenticate using Google Accounts.</li>
|
||||
<li>Implement "on–demand" authentication when a user accesses a secured resource.</li>
|
||||
<li>Supplement the information from Google Accounts with application–specific roles.</li>
|
||||
<li>Store user account data in an App Engine datastore using the native API.</li>
|
||||
<li>Setup access-control restrictions based on the roles assigned to users.</li>
|
||||
<li>Disable the accounts of specfic users to prevent access.</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
Go to the <a href="/home.htm">home page</a>.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
17
samples/xml/gae/src/main/webapp/WEB-INF/jsp/loggedout.jsp
Normal file
17
samples/xml/gae/src/main/webapp/WEB-INF/jsp/loggedout.jsp
Normal file
@@ -0,0 +1,17 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@page session="false" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="/static/css/gae.css" type="text/css" />
|
||||
<title>Spring Security GAE Sample</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="content">
|
||||
<p>You've been logged out of the application. <a href="/home.htm">Log back in</a>.</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
40
samples/xml/gae/src/main/webapp/WEB-INF/jsp/register.jsp
Normal file
40
samples/xml/gae/src/main/webapp/WEB-INF/jsp/register.jsp
Normal file
@@ -0,0 +1,40 @@
|
||||
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
|
||||
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="/static/css/gae.css" type="text/css" />
|
||||
<title>Registration</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<p>
|
||||
Welcome to the Spring Security GAE sample application, <sec:authentication property="principal.nickname" />.
|
||||
Please enter your registration details in order to use the application.
|
||||
</p>
|
||||
<p>
|
||||
The data you enter here will be registered in the application's GAE data store, keyed under your unique
|
||||
Google Accounts identifier. It doesn't have to be accurate. When you log in again, the information will be automatically
|
||||
retrieved.
|
||||
</p>
|
||||
|
||||
<form:form id="register" method="post" modelAttribute="registrationForm">
|
||||
<fieldset>
|
||||
<form:label path="forename">
|
||||
Forename:
|
||||
</form:label> <form:errors path="forename" cssClass="fieldError" /><br />
|
||||
<form:input path="forename" /> <br />
|
||||
|
||||
<form:label path="surname">
|
||||
Surname:
|
||||
</form:label><form:errors path="surname" cssClass="fieldError" /> <br />
|
||||
<form:input path="surname" /><br />
|
||||
</fieldset>
|
||||
<input type="submit" value="Register">
|
||||
</form:form>
|
||||
</body>
|
||||
</div>
|
||||
</html>
|
||||
@@ -0,0 +1,5 @@
|
||||
.level = INFO
|
||||
|
||||
samples.gae.level = FINER
|
||||
org.springframework.level = INFO
|
||||
org.springframework.security.level = FINER
|
||||
46
samples/xml/gae/src/main/webapp/WEB-INF/web.xml
Normal file
46
samples/xml/gae/src/main/webapp/WEB-INF/web.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
|
||||
|
||||
<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>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>gae</servlet-name>
|
||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>/WEB-INF/gae-servlet.xml</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>gae</servlet-name>
|
||||
<url-pattern>/</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>gae</servlet-name>
|
||||
<url-pattern>*.htm</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
</web-app>
|
||||
BIN
samples/xml/gae/src/main/webapp/favicon.ico
Normal file
BIN
samples/xml/gae/src/main/webapp/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
26
samples/xml/gae/src/main/webapp/static/css/gae.css
Normal file
26
samples/xml/gae/src/main/webapp/static/css/gae.css
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
body {
|
||||
font-family:"Palatino Linotype","Book Antiqua",Palatino,serif;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 5em auto;
|
||||
width: 40em;
|
||||
}
|
||||
|
||||
form {
|
||||
width: 25em;
|
||||
margin: 0 2em;
|
||||
}
|
||||
|
||||
form fieldset {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
fieldset input {
|
||||
margin: 0.6em 0;
|
||||
}
|
||||
|
||||
.fieldError {
|
||||
color: red;
|
||||
}
|
||||
Reference in New Issue
Block a user