diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml index 2176778c97..b35dca5ec9 100644 --- a/spring-security-rest-template/pom.xml +++ b/spring-security-rest-template/pom.xml @@ -1,294 +1,318 @@ - - 4.0.0 - org.baeldung - spring-security-rest-template - 0.1-SNAPSHOT + + 4.0.0 + org.baeldung + spring-security-rest-template + 0.1-SNAPSHOT - spring-security-rest-template - war + spring-security-rest-template + war - + - + - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + - + - - org.springframework - spring-core - ${org.springframework.version} - - - commons-logging - commons-logging - - - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - + + org.springframework + spring-core + ${org.springframework.version} + + + commons-logging + commons-logging + + + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + - - org.springframework - spring-oxm - ${org.springframework.version} - + + org.springframework + spring-oxm + ${org.springframework.version} + - + - - com.fasterxml.jackson.core - jackson-databind - 2.2.2 - + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + - - - - - - - - - - - - - - - - org.apache.httpcomponents - httpcore - ${httpcore.version} - - - commons-logging - commons-logging - - - + - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - + + + + + + + + + + + - + + org.apache.httpcomponents + httpcore + ${httpcore.version} + + + commons-logging + commons-logging + + + - - javax.servlet - javax.servlet-api - 3.0.1 - provided - + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-logging + commons-logging + + + - - javax.servlet - jstl - 1.2 - runtime - + - + + javax.servlet + javax.servlet-api + 3.0.1 + provided + - - com.google.guava - guava - ${guava.version} - + + javax.servlet + jstl + 1.2 + runtime + - + - - org.springframework - spring-test - ${org.springframework.version} - test - + + com.google.guava + guava + ${guava.version} + - - junit - junit-dep - ${junit.version} - test - + - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + + + + org.slf4j + log4j-over-slf4j + ${org.slf4j.version} + - - org.mockito - mockito-core - ${mockito.version} - test - + - + + org.springframework + spring-test + ${org.springframework.version} + test + - - spring-security-rest-template - - - src/main/resources - true - - + + junit + junit-dep + ${junit.version} + test + - + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - true - source - - + + org.mockito + mockito-core + ${mockito.version} + test + - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/*LiveTest.java - - - - - - + - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - + + spring-security-rest-template + + + src/main/resources + true + + - + - + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + - - - 3.2.3.RELEASE - 3.1.4.RELEASE + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/*LiveTest.java + + + + + + - - 4.2.3.Final - 5.1.25 + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + - - 4.2.4 - 4.2.5 + - - 1.7.5 - 1.0.11 + - - 5.0.1.Final + + + 3.2.3.RELEASE + 3.1.4.RELEASE - - 14.0.1 - 3.1 + + 4.2.3.Final + 5.1.25 - - 1.3 - 4.11 - 1.9.5 + + 4.2.4 + 4.2.5 - 1.8.1 - 1.8.9 + + 1.7.5 + 1.0.11 - - 1.4.3 - 2.15 - + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 1.8.1 + 1.8.9 + + + 1.4.3 + 2.15 + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java new file mode 100644 index 0000000000..2bc314baa2 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java @@ -0,0 +1,31 @@ +package org.baeldung.web.controller; + +import org.baeldung.web.dto.Bar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +@RequestMapping(value = "/bars") +public class BarController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public BarController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Bar findOne(@PathVariable("id") final Long id) { + return new Bar(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java index 9b74c79ca8..b50edb2dcf 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java @@ -30,10 +30,4 @@ public class FooController { return new Foo(); } - @RequestMapping(value = "/{id}/unsecured", method = RequestMethod.GET) - @ResponseBody - public Foo findOneUnsecured(@PathVariable("id") final Long id) { - return new Foo(); - } - } diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java new file mode 100644 index 0000000000..d33e39a823 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java @@ -0,0 +1,14 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class Bar implements Serializable { + + public Bar() { + super(); + } + +} diff --git a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml index 14b432aaef..fa64cf242a 100644 --- a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml @@ -7,7 +7,6 @@ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - @@ -21,4 +20,6 @@ + + \ No newline at end of file diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java index 76668ab41c..f849eda492 100644 --- a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java @@ -1,11 +1,15 @@ package org.baeldung.client; import java.io.IOException; +import java.util.Timer; +import java.util.TimerTask; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.params.ClientPNames; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.baeldung.client.spring.ClientConfig; @@ -25,21 +29,39 @@ public class RawClientLiveTest { public final void whenSecuredRestApiIsConsumed_then200OK() throws ClientProtocolException, IOException { final DefaultHttpClient httpClient = new DefaultHttpClient(); - final int timeout = 5; // seconds + final int timeout = 20; // seconds final HttpParams httpParams = httpClient.getParams(); - // - note: timeout via raw String parameters - // httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000); - // httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000); - // httpParams.setParameter("http.connection-manager.timeout", new Long(timeout * 1000)); - // httpParams.setParameter("http.protocol.head-body-timeout", timeout * 1000); + configureViaRawApi(timeout, httpParams); + // configureViaHighLevelApi(timeout, httpParams); - // - note: timeout via the API - HttpConnectionParams.setConnectionTimeout(httpParams, timeout * 1000); // http.connection.timeout - HttpConnectionParams.setSoTimeout(httpParams, timeout * 1000); // http.socket.timeout + final HttpGet getMethod = new HttpGet("http://localhost:8080/spring-security-rest-template/api/bars/1"); - final HttpResponse response = httpClient.execute(new HttpGet("http://localhost:8080/spring-security-rest-template/api/foos/1/unsecured")); - final int statusCode = response.getStatusLine().getStatusCode(); - System.out.println(statusCode); + final int hardTimeout = 5; // seconds + final TimerTask task = new TimerTask() { + @Override + public void run() { + if (getMethod != null) { + getMethod.abort(); + } + } + }; + new Timer(true).schedule(task, hardTimeout * 1000); + + final HttpResponse response = httpClient.execute(getMethod); + System.out.println("HTTP Status of response: " + response.getStatusLine().getStatusCode()); } + // util + + final void configureViaHighLevelApi(final int timeout, final HttpParams httpParams) { + HttpConnectionParams.setConnectionTimeout(httpParams, timeout * 1000); // http.connection.timeout + HttpConnectionParams.setSoTimeout(httpParams, timeout * 1000); // http.socket.timeout + httpParams.setParameter(ClientPNames.CONN_MANAGER_TIMEOUT, new Long(timeout * 1000)); + } + + final void configureViaRawApi(final int timeout, final HttpParams httpParams) { + httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000); + httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000); + httpParams.setParameter(ClientPNames.CONN_MANAGER_TIMEOUT, new Long(timeout * 1000)); + } }