commit
						12dab9fdcb
					
				
							
								
								
									
										29
									
								
								spring-oauth/.classpath
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								spring-oauth/.classpath
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <classpath> | ||||
| 	<classpathentry kind="src" output="target/classes" path="src/main/java"> | ||||
| 		<attributes> | ||||
| 			<attribute name="optional" value="true"/> | ||||
| 			<attribute name="maven.pomderived" value="true"/> | ||||
| 		</attributes> | ||||
| 	</classpathentry> | ||||
| 	<classpathentry including="**/*.java" kind="src" path="src/main/resources"/> | ||||
| 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"> | ||||
| 		<attributes> | ||||
| 			<attribute name="optional" value="true"/> | ||||
| 			<attribute name="maven.pomderived" value="true"/> | ||||
| 		</attributes> | ||||
| 	</classpathentry> | ||||
| 	<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/> | ||||
| 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> | ||||
| 		<attributes> | ||||
| 			<attribute name="maven.pomderived" value="true"/> | ||||
| 		</attributes> | ||||
| 	</classpathentry> | ||||
| 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | ||||
| 		<attributes> | ||||
| 			<attribute name="maven.pomderived" value="true"/> | ||||
| 			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> | ||||
| 		</attributes> | ||||
| 	</classpathentry> | ||||
| 	<classpathentry kind="output" path="target/classes"/> | ||||
| </classpath> | ||||
							
								
								
									
										47
									
								
								spring-oauth/.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								spring-oauth/.project
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <projectDescription> | ||||
| 	<name>spring-oauth</name> | ||||
| 	<comment></comment> | ||||
| 	<projects> | ||||
| 	</projects> | ||||
| 	<buildSpec> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.jdt.core.javabuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.wst.common.project.facet.core.builder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.springframework.ide.eclipse.core.springbuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.wst.validation.validationbuilder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 		<buildCommand> | ||||
| 			<name>org.eclipse.m2e.core.maven2Builder</name> | ||||
| 			<arguments> | ||||
| 			</arguments> | ||||
| 		</buildCommand> | ||||
| 	</buildSpec> | ||||
| 	<natures> | ||||
| 		<nature>org.springframework.ide.eclipse.core.springnature</nature> | ||||
| 		<nature>org.eclipse.jdt.core.javanature</nature> | ||||
| 		<nature>org.eclipse.m2e.core.maven2Nature</nature> | ||||
| 		<nature>org.eclipse.wst.common.project.facet.core.nature</nature> | ||||
| 		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> | ||||
| 		<nature>org.eclipse.wst.jsdt.core.jsNature</nature> | ||||
| 	</natures> | ||||
| </projectDescription> | ||||
							
								
								
									
										15
									
								
								spring-oauth/.springBeans
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spring-oauth/.springBeans
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <beansProjectDescription> | ||||
| 	<version>1</version> | ||||
| 	<pluginVersion><![CDATA[3.6.3.201411271034-RELEASE]]></pluginVersion> | ||||
| 	<configSuffixes> | ||||
| 		<configSuffix><![CDATA[xml]]></configSuffix> | ||||
| 	</configSuffixes> | ||||
| 	<enableImports><![CDATA[true]]></enableImports> | ||||
| 	<configs> | ||||
| 	</configs> | ||||
| 	<autoconfigs> | ||||
| 	</autoconfigs> | ||||
| 	<configSets> | ||||
| 	</configSets> | ||||
| </beansProjectDescription> | ||||
							
								
								
									
										425
									
								
								spring-oauth/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										425
									
								
								spring-oauth/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,425 @@ | ||||
| <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/xsd/maven-4.0.0.xsd"> | ||||
|     <modelVersion>4.0.0</modelVersion> | ||||
|     <groupId>org.baeldung</groupId> | ||||
|     <artifactId>spring-oauth</artifactId> | ||||
|     <version>0.1-SNAPSHOT</version> | ||||
| 
 | ||||
|     <name>spring-oauth</name> | ||||
|     <packaging>war</packaging> | ||||
| 
 | ||||
|     <dependencies> | ||||
| 
 | ||||
|         <!-- Spring Security --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.security</groupId> | ||||
|             <artifactId>spring-security-web</artifactId> | ||||
|             <version>${org.springframework.security.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.security</groupId> | ||||
|             <artifactId>spring-security-config</artifactId> | ||||
|             <version>${org.springframework.security.version}</version> | ||||
|         </dependency> | ||||
|          | ||||
|         <dependency> | ||||
| 	        <groupId>org.springframework.security.oauth</groupId> | ||||
| 	        <artifactId>spring-security-oauth2</artifactId> | ||||
| 	        <version>2.0.6.RELEASE</version> | ||||
| 	    </dependency> | ||||
| 
 | ||||
|         <!-- Spring --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-core</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|             <exclusions> | ||||
|                 <exclusion> | ||||
|                     <artifactId>commons-logging</artifactId> | ||||
|                     <groupId>commons-logging</groupId> | ||||
|                 </exclusion> | ||||
|             </exclusions> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-context</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-jdbc</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-beans</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-aop</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-tx</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-expression</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-web</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-webmvc</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|          | ||||
|         <!-- web --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.apache.httpcomponents</groupId> | ||||
|             <artifactId>httpclient</artifactId> | ||||
|             <version>${httpclient.version}</version> | ||||
|             <exclusions> | ||||
|                 <exclusion> | ||||
|                     <artifactId>commons-logging</artifactId> | ||||
|                     <groupId>commons-logging</groupId> | ||||
|                 </exclusion> | ||||
|             </exclusions> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.apache.httpcomponents</groupId> | ||||
|             <artifactId>httpcore</artifactId> | ||||
|             <version>${httpcore.version}</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- persistence --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-orm</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.data</groupId> | ||||
|             <artifactId>spring-data-jpa</artifactId> | ||||
|             <version>${spring-data-jpa.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.hibernate</groupId> | ||||
|             <artifactId>hibernate-entitymanager</artifactId> | ||||
|             <version>${hibernate.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>xml-apis</groupId> | ||||
|             <artifactId>xml-apis</artifactId> | ||||
|             <version>1.4.01</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.javassist</groupId> | ||||
|             <artifactId>javassist</artifactId> | ||||
|             <version>3.18.2-GA</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>mysql</groupId> | ||||
|             <artifactId>mysql-connector-java</artifactId> | ||||
|             <version>${mysql-connector-java.version}</version> | ||||
|             <scope>runtime</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- web --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>javax.servlet</groupId> | ||||
|             <artifactId>javax.servlet-api</artifactId> | ||||
|             <version>3.0.1</version> | ||||
|             <scope>provided</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>javax.servlet</groupId> | ||||
|             <artifactId>jstl</artifactId> | ||||
|             <version>1.2</version> | ||||
|             <scope>runtime</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- marshalling --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.fasterxml.jackson.core</groupId> | ||||
|             <artifactId>jackson-databind</artifactId> | ||||
|             <version>${jackson.version}</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.thoughtworks.xstream</groupId> | ||||
|             <artifactId>xstream</artifactId> | ||||
|             <version>1.4.7</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- util --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.google.guava</groupId> | ||||
|             <artifactId>guava</artifactId> | ||||
|             <version>${guava.version}</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- logging --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>slf4j-api</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>ch.qos.logback</groupId> | ||||
|             <artifactId>logback-classic</artifactId> | ||||
|             <version>${logback.version}</version> | ||||
|             <!-- <scope>runtime</scope> --> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>jcl-over-slf4j</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|             <!-- <scope>runtime</scope> --> <!-- some spring dependencies need to compile against jcl --> | ||||
|         </dependency> | ||||
|         <dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly --> | ||||
|             <groupId>org.slf4j</groupId> | ||||
|             <artifactId>log4j-over-slf4j</artifactId> | ||||
|             <version>${org.slf4j.version}</version> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <!-- test scoped --> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.springframework</groupId> | ||||
|             <artifactId>spring-test</artifactId> | ||||
|             <version>${org.springframework.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>junit</groupId> | ||||
|             <artifactId>junit-dep</artifactId> | ||||
|             <version>${junit.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.hamcrest</groupId> | ||||
|             <artifactId>hamcrest-core</artifactId> | ||||
|             <version>${org.hamcrest.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.hamcrest</groupId> | ||||
|             <artifactId>hamcrest-library</artifactId> | ||||
|             <version>${org.hamcrest.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>org.mockito</groupId> | ||||
|             <artifactId>mockito-core</artifactId> | ||||
|             <version>${mockito.version}</version> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
| 
 | ||||
|         <dependency> | ||||
|             <groupId>com.jayway.restassured</groupId> | ||||
|             <artifactId>rest-assured</artifactId> | ||||
|             <version>2.3.0</version> | ||||
|             <scope>test</scope> | ||||
|             <exclusions> | ||||
|                 <exclusion> | ||||
|                     <artifactId>commons-logging</artifactId> | ||||
|                     <groupId>commons-logging</groupId> | ||||
|                 </exclusion> | ||||
|             </exclusions> | ||||
|         </dependency> | ||||
| 
 | ||||
|     </dependencies> | ||||
| 
 | ||||
|     <build> | ||||
|         <finalName>spring-oauth</finalName> | ||||
|         <resources> | ||||
|             <resource> | ||||
|                 <directory>src/main/resources</directory> | ||||
|                 <filtering>true</filtering> | ||||
|             </resource> | ||||
|         </resources> | ||||
| 
 | ||||
|         <plugins> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-compiler-plugin</artifactId> | ||||
|                 <version>3.1</version> | ||||
|                 <configuration> | ||||
|                     <source>1.7</source> | ||||
|                     <target>1.7</target> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-war-plugin</artifactId> | ||||
|                 <version>${maven-war-plugin.version}</version> | ||||
|             </plugin> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-surefire-plugin</artifactId> | ||||
|                 <version>${maven-surefire-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <excludes> | ||||
|                         <exclude>**/*IntegrationTest.java</exclude> | ||||
|                         <exclude>**/*LiveTest.java</exclude> | ||||
|                     </excludes> | ||||
|                     <systemPropertyVariables> | ||||
|                         <!-- <provPersistenceTarget>h2</provPersistenceTarget> --> | ||||
|                     </systemPropertyVariables> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
| 
 | ||||
|             <plugin> | ||||
|                 <groupId>org.codehaus.cargo</groupId> | ||||
|                 <artifactId>cargo-maven2-plugin</artifactId> | ||||
|                 <version>${cargo-maven2-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <wait>true</wait> | ||||
|                     <container> | ||||
|                         <containerId>jetty8x</containerId> | ||||
|                         <type>embedded</type> | ||||
|                         <systemProperties> | ||||
|                             <!-- <provPersistenceTarget>cargo</provPersistenceTarget> --> | ||||
|                         </systemProperties> | ||||
|                     </container> | ||||
|                     <configuration> | ||||
|                         <properties> | ||||
|                             <cargo.servlet.port>8080</cargo.servlet.port> | ||||
|                         </properties> | ||||
|                     </configuration> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
| 
 | ||||
|         </plugins> | ||||
| 
 | ||||
|     </build> | ||||
| 
 | ||||
|     <profiles> | ||||
|         <profile> | ||||
|             <id>integration</id> | ||||
|             <build> | ||||
| 
 | ||||
|                 <plugins> | ||||
| 
 | ||||
|                     <plugin> | ||||
|                         <groupId>org.apache.maven.plugins</groupId> | ||||
|                         <artifactId>maven-surefire-plugin</artifactId> | ||||
|                         <executions> | ||||
|                             <execution> | ||||
|                                 <phase>integration-test</phase> | ||||
|                                 <goals> | ||||
|                                     <goal>test</goal> | ||||
|                                 </goals> | ||||
|                                 <configuration> | ||||
|                                     <excludes> | ||||
|                                         <exclude>none</exclude> | ||||
|                                     </excludes> | ||||
|                                     <includes> | ||||
|                                         <include>**/*IntegrationTest.java</include> | ||||
|                                         <include>**/*LiveTest.java</include> | ||||
|                                     </includes> | ||||
|                                 </configuration> | ||||
|                             </execution> | ||||
|                         </executions> | ||||
|                         <configuration> | ||||
|                             <systemPropertyVariables> | ||||
|                                 <test.mime>json</test.mime> | ||||
|                             </systemPropertyVariables> | ||||
|                         </configuration> | ||||
|                     </plugin> | ||||
|                     <plugin> | ||||
|                         <groupId>org.codehaus.cargo</groupId> | ||||
|                         <artifactId>cargo-maven2-plugin</artifactId> | ||||
|                         <configuration> | ||||
|                             <wait>false</wait> | ||||
|                         </configuration> | ||||
|                         <executions> | ||||
|                             <execution> | ||||
|                                 <id>start-server</id> | ||||
|                                 <phase>pre-integration-test</phase> | ||||
|                                 <goals> | ||||
|                                     <goal>start</goal> | ||||
|                                 </goals> | ||||
|                             </execution> | ||||
|                             <execution> | ||||
|                                 <id>stop-server</id> | ||||
|                                 <phase>post-integration-test</phase> | ||||
|                                 <goals> | ||||
|                                     <goal>stop</goal> | ||||
|                                 </goals> | ||||
|                             </execution> | ||||
|                         </executions> | ||||
|                     </plugin> | ||||
|                 </plugins> | ||||
| 
 | ||||
|             </build> | ||||
|         </profile> | ||||
|     </profiles> | ||||
| 
 | ||||
|     <properties> | ||||
|         <!-- Spring --> | ||||
|         <org.springframework.version>4.1.4.RELEASE</org.springframework.version> | ||||
|         <org.springframework.security.version>3.2.5.RELEASE</org.springframework.security.version> | ||||
| 
 | ||||
|         <!-- persistence --> | ||||
|         <hibernate.version>4.3.7.Final</hibernate.version> | ||||
|         <mysql-connector-java.version>5.1.34</mysql-connector-java.version> | ||||
|         <spring-data-jpa.version>1.7.1.RELEASE</spring-data-jpa.version> | ||||
| 
 | ||||
|         <!-- marshalling --> | ||||
| 
 | ||||
|         <jackson.version>2.4.4</jackson.version> | ||||
| 
 | ||||
|         <!-- logging --> | ||||
|         <org.slf4j.version>1.7.9</org.slf4j.version> | ||||
|         <logback.version>1.1.2</logback.version> | ||||
| 
 | ||||
|         <!-- various --> | ||||
|         <hibernate-validator.version>5.1.3.Final</hibernate-validator.version> | ||||
| 
 | ||||
|         <!-- util --> | ||||
|         <guava.version>18.0</guava.version> | ||||
|         <commons-lang3.version>3.3.2</commons-lang3.version> | ||||
| 
 | ||||
|         <!-- testing --> | ||||
|         <org.hamcrest.version>1.3</org.hamcrest.version> | ||||
|         <junit.version>4.11</junit.version> | ||||
|         <mockito.version>1.10.19</mockito.version> | ||||
| 
 | ||||
|         <httpcore.version>4.4</httpcore.version> | ||||
|         <httpclient.version>4.3.6</httpclient.version> | ||||
| 
 | ||||
|         <rest-assured.version>2.4.0</rest-assured.version> | ||||
| 
 | ||||
|         <!-- Maven plugins --> | ||||
|         <maven-compiler-plugin.version>3.2</maven-compiler-plugin.version> | ||||
|         <maven-war-plugin.version>2.5</maven-war-plugin.version> | ||||
|         <maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version> | ||||
|         <cargo-maven2-plugin.version>1.4.11</cargo-maven2-plugin.version> | ||||
| 
 | ||||
|     </properties> | ||||
| 
 | ||||
| </project> | ||||
| @ -0,0 +1,42 @@ | ||||
| package org.baeldung.config; | ||||
| 
 | ||||
| import javax.servlet.ServletContext; | ||||
| import javax.servlet.ServletException; | ||||
| 
 | ||||
| import org.springframework.web.context.WebApplicationContext; | ||||
| import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; | ||||
| import org.springframework.web.filter.DelegatingFilterProxy; | ||||
| import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer; | ||||
| 
 | ||||
| public class ServletInitializer extends AbstractDispatcherServletInitializer { | ||||
| 
 | ||||
|     @Override | ||||
|     protected WebApplicationContext createServletApplicationContext() { | ||||
|         AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); | ||||
|         context.register(WebConfig.class); | ||||
|         return context; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected String[] getServletMappings() { | ||||
|         return new String[] { "/" }; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     protected WebApplicationContext createRootApplicationContext() { | ||||
|         return null; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void onStartup(ServletContext servletContext) throws ServletException { | ||||
|         super.onStartup(servletContext); | ||||
|         registerProxyFilter(servletContext, "oauth2ClientContextFilter"); | ||||
|     } | ||||
| 
 | ||||
|     private void registerProxyFilter(ServletContext servletContext, String name) { | ||||
|         DelegatingFilterProxy filter = new DelegatingFilterProxy(name); | ||||
|         filter.setContextAttribute("org.springframework.web.servlet.FrameworkServlet.CONTEXT.dispatcher"); | ||||
|         servletContext.addFilter(name, filter).addMappingForUrlPatterns(null, false, "/*"); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,94 @@ | ||||
| package org.baeldung.config; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| 
 | ||||
| import org.baeldung.web.RedditController; | ||||
| import org.springframework.beans.factory.annotation.Qualifier; | ||||
| import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.context.annotation.PropertySource; | ||||
| import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; | ||||
| import org.springframework.security.oauth2.client.OAuth2ClientContext; | ||||
| import org.springframework.security.oauth2.client.OAuth2RestTemplate; | ||||
| import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails; | ||||
| import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails; | ||||
| import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client; | ||||
| import org.springframework.web.client.RestOperations; | ||||
| import org.springframework.web.servlet.ViewResolver; | ||||
| import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; | ||||
| import org.springframework.web.servlet.config.annotation.EnableWebMvc; | ||||
| import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; | ||||
| import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; | ||||
| import org.springframework.web.servlet.view.InternalResourceViewResolver; | ||||
| 
 | ||||
| @Configuration | ||||
| @EnableWebMvc | ||||
| public class WebConfig extends WebMvcConfigurerAdapter { | ||||
| 
 | ||||
|     @Bean | ||||
|     public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { | ||||
|         return new PropertySourcesPlaceholderConfigurer(); | ||||
|     } | ||||
| 
 | ||||
|     @Bean | ||||
|     public ViewResolver viewResolver() { | ||||
|         InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); | ||||
|         viewResolver.setPrefix("/WEB-INF/jsp/"); | ||||
|         viewResolver.setSuffix(".jsp"); | ||||
|         return viewResolver; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { | ||||
|         configurer.enable(); | ||||
|     } | ||||
| 
 | ||||
|     @Bean | ||||
|     public RedditController redditController(@Qualifier("redditRestTemplate") RestOperations redditRestTemplate) { | ||||
|         RedditController controller = new RedditController(); | ||||
|         controller.setRedditRestTemplate(redditRestTemplate); | ||||
|         return controller; | ||||
|     } | ||||
| 
 | ||||
|     public void addResourceHandlers(ResourceHandlerRegistry registry) { | ||||
|         registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); | ||||
|     } | ||||
| 
 | ||||
|     @Configuration | ||||
|     @EnableOAuth2Client | ||||
|     @PropertySource("classpath:reddit.properties") | ||||
|     protected static class ResourceConfiguration { | ||||
| 
 | ||||
|         @Value("${accessTokenUri}") | ||||
|         private String accessTokenUri; | ||||
| 
 | ||||
|         @Value("${userAuthorizationUri}") | ||||
|         private String userAuthorizationUri; | ||||
| 
 | ||||
|         @Value("${clientID}") | ||||
|         private String clientID; | ||||
| 
 | ||||
|         @Value("${clientSecret}") | ||||
|         private String clientSecret; | ||||
| 
 | ||||
|         @Bean | ||||
|         public OAuth2ProtectedResourceDetails reddit() { | ||||
|             AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails(); | ||||
|             details.setId("reddit"); | ||||
|             details.setClientId(clientID); | ||||
|             details.setClientSecret(clientSecret); | ||||
|             details.setAccessTokenUri(accessTokenUri); | ||||
|             details.setUserAuthorizationUri(userAuthorizationUri); | ||||
|             details.setTokenName("oauth_token"); | ||||
|             details.setScope(Arrays.asList("identity")); | ||||
|             return details; | ||||
|         } | ||||
| 
 | ||||
|         @Bean | ||||
|         public OAuth2RestTemplate redditRestTemplate(OAuth2ClientContext clientContext) { | ||||
|             OAuth2RestTemplate template = new OAuth2RestTemplate(reddit(), clientContext); | ||||
|             return template; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,28 @@ | ||||
| package org.baeldung.web; | ||||
| 
 | ||||
| import org.springframework.stereotype.Controller; | ||||
| import org.springframework.ui.Model; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.client.RestOperations; | ||||
| 
 | ||||
| import com.fasterxml.jackson.databind.JsonNode; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| 
 | ||||
| @Controller | ||||
| public class RedditController { | ||||
| 
 | ||||
|     private RestOperations redditRestTemplate; | ||||
| 
 | ||||
|     @RequestMapping("/reddit/info") | ||||
|     public String getInfo(Model model) throws Exception { | ||||
|         String result = redditRestTemplate.getForObject("https://oauth.reddit.com/api/v1/me", String.class); | ||||
|         JsonNode node = new ObjectMapper().readTree(result); | ||||
|         model.addAttribute("info", node.get("name").asText()); | ||||
|         return "reddit"; | ||||
|     } | ||||
| 
 | ||||
|     public void setRedditRestTemplate(RestOperations redditRestTemplate) { | ||||
|         this.redditRestTemplate = redditRestTemplate; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										41
									
								
								spring-oauth/src/main/resources/log4j.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								spring-oauth/src/main/resources/log4j.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> | ||||
| <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> | ||||
| 
 | ||||
| 	<!-- Appenders --> | ||||
| 	<appender name="console" class="org.apache.log4j.ConsoleAppender"> | ||||
| 		<param name="Target" value="System.out" /> | ||||
| 		<layout class="org.apache.log4j.PatternLayout"> | ||||
| 			<param name="ConversionPattern" value="%-5p: %c - %m%n" /> | ||||
| 		</layout> | ||||
| 	</appender> | ||||
| 	 | ||||
| 	<!-- Application Loggers --> | ||||
| 	<logger name="org.baeldung.web"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 	 | ||||
| 	<!-- 3rdparty Loggers --> | ||||
| 	<logger name="org.springframework.core"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 	 | ||||
| 	<logger name="org.springframework.beans"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 	 | ||||
| 	<logger name="org.springframework.context"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 
 | ||||
| 	<logger name="org.springframework.web"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 
 | ||||
| 	<!-- Root Logger --> | ||||
| 	<root> | ||||
| 		<priority value="warn" /> | ||||
| 		<appender-ref ref="console" /> | ||||
| 	</root> | ||||
| 	 | ||||
| </log4j:configuration> | ||||
							
								
								
									
										4
									
								
								spring-oauth/src/main/resources/reddit.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								spring-oauth/src/main/resources/reddit.properties
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| clientID=5iAHD5-BBmEL8Q | ||||
| clientSecret=grkII6-THVcFsMm1wVTiQDRONmw | ||||
| accessTokenUri=https://www.reddit.com/api/v1/access_token | ||||
| userAuthorizationUri=https://www.reddit.com/api/v1/authorize | ||||
							
								
								
									
										12
									
								
								spring-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								spring-oauth/src/main/webapp/WEB-INF/jsp/reddit.jsp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,12 @@ | ||||
| 
 | ||||
| <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| 
 | ||||
| <title>Spring OAuth</title> | ||||
| </head> | ||||
| <body> | ||||
| <h1>Your Reddit Info</h1> | ||||
| <b>Your reddit username is </b>${info} | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										15
									
								
								spring-oauth/src/main/webapp/index.jsp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								spring-oauth/src/main/webapp/index.jsp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,15 @@ | ||||
| 
 | ||||
| <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
| <title>Spring OAuth</title> | ||||
| </head> | ||||
| <body> | ||||
| 	 | ||||
| <h1>Welcome to Spring OAuth</h1> | ||||
| <a href="reddit/info">Login with Reddit</a> | ||||
| 			 | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										41
									
								
								spring-oauth/src/test/resources/log4j.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								spring-oauth/src/test/resources/log4j.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> | ||||
| <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> | ||||
| 
 | ||||
| 	<!-- Appenders --> | ||||
| 	<appender name="console" class="org.apache.log4j.ConsoleAppender"> | ||||
| 		<param name="Target" value="System.out" /> | ||||
| 		<layout class="org.apache.log4j.PatternLayout"> | ||||
| 			<param name="ConversionPattern" value="%-5p: %c - %m%n" /> | ||||
| 		</layout> | ||||
| 	</appender> | ||||
| 	 | ||||
| 	<!-- Application Loggers --> | ||||
| 	<logger name="org.baeldung.web"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 	 | ||||
| 	<!-- 3rdparty Loggers --> | ||||
| 	<logger name="org.springframework.core"> | ||||
| 		<level value="info" /> | ||||
| 	</logger>	 | ||||
| 	 | ||||
| 	<logger name="org.springframework.beans"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 	 | ||||
| 	<logger name="org.springframework.context"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 
 | ||||
| 	<logger name="org.springframework.web"> | ||||
| 		<level value="info" /> | ||||
| 	</logger> | ||||
| 
 | ||||
| 	<!-- Root Logger --> | ||||
| 	<root> | ||||
| 		<priority value="info" /> | ||||
| 		<appender-ref ref="console" /> | ||||
| 	</root> | ||||
| 	 | ||||
| </log4j:configuration> | ||||
| @ -41,7 +41,6 @@ public class RegistrationListener implements ApplicationListener<OnRegistrationC | ||||
|         email.setTo(recipientAddress); | ||||
|         email.setSubject(subject); | ||||
|         email.setText(message + " \r\n" + "http://localhost:8080" + confirmationUrl); | ||||
|         System.out.println(email.getText()); | ||||
|         mailSender.send(email); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -130,7 +130,7 @@ public class RegistrationController { | ||||
|             return "redirect:/emailError.html?lang=" + locale.getLanguage(); | ||||
|         } catch (final Exception e) { | ||||
|             LOGGER.debug(e.getLocalizedMessage()); | ||||
|             model.addAttribute("error", e.getLocalizedMessage()); | ||||
|             model.addAttribute("message", e.getLocalizedMessage()); | ||||
|             return "redirect:/login.html?lang=" + locale.getLanguage(); | ||||
|         } | ||||
|         model.addAttribute("message", messages.getMessage("message.resendToken", null, locale)); | ||||
| @ -156,7 +156,7 @@ public class RegistrationController { | ||||
|             return "redirect:/emailError.html?lang=" + request.getLocale().getLanguage(); | ||||
|         } catch (final Exception e) { | ||||
|             LOGGER.debug(e.getLocalizedMessage()); | ||||
|             model.addAttribute("error", e.getLocalizedMessage()); | ||||
|             model.addAttribute("message", e.getLocalizedMessage()); | ||||
|             return "redirect:/login.html?lang=" + request.getLocale().getLanguage(); | ||||
|         } | ||||
|         model.addAttribute("message", messages.getMessage("message.resetPassword", null, request.getLocale())); | ||||
|  | ||||
| @ -54,7 +54,7 @@ NotEmpty.user.matchingPassword=Required | ||||
| PasswordMatches.user:Password does not match! | ||||
| Email.user.email=Invalid Username (Email) | ||||
| label.form.resendRegistrationToken=Re-send Token | ||||
| message.resendToken=We will send you a message with a new registration token to your email account. | ||||
| message.resendToken=We will send you a message with a new registration token to your email account | ||||
| message.forgetPassword=Forget Password | ||||
| message.resetPassword=Reset Password | ||||
| message.updatePassword=Update Password | ||||
|  | ||||
| @ -54,3 +54,8 @@ NotEmpty.user.matchingPassword=Campo obligatrio | ||||
| PasswordMatches.user:Las claves no coinciden! | ||||
| Email.user.email=Email no es valido | ||||
| label.form.resendRegistrationToken=Reenviar mensaje de emergencia | ||||
| message.resendToken=Le enviaremos un mensaje con un nuevo token de registro en su cuenta de correo electrónico | ||||
| message.forgetPassword=Olvide la contraseña | ||||
| message.resetPassword=Restablecer contraseña | ||||
| message.updatePassword=Actualizar contraseña | ||||
| message.userNotFound=Usuario no encontrado | ||||
| @ -56,6 +56,12 @@ | ||||
| </script> | ||||
| </head> | ||||
| <body> | ||||
| <c:if test="${param.message != null}"> | ||||
| <div class="alert alert-error"> | ||||
| ${param.message} | ||||
| </div> | ||||
| </c:if> | ||||
| 
 | ||||
| 	<div class="container"> | ||||
| 		<div class="span12"> | ||||
| 			<h1> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user