diff --git a/spring-security-custom-permission/pom.xml b/spring-security-custom-permission/pom.xml
index 6f460f1751..b2854fe7c5 100644
--- a/spring-security-custom-permission/pom.xml
+++ b/spring-security-custom-permission/pom.xml
@@ -55,7 +55,12 @@
-
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
junit
junit
@@ -95,13 +100,54 @@
org.springframework.boot
spring-boot-maven-plugin
+
+
+ maven-surefire-plugin
+
+ ${unit-tests.skip}
+
+ **/*LiveTest.java
+
+
+
+
+
+ maven-failsafe-plugin
+
+
+ integration-test
+
+ integration-test
+
+
+ ${live-tests.skip}
+
+ **/*LiveTest.class
+
+
+
+
+
+
+
+
+ live
+
+ false
+ false
+
+
+
+
UTF-8
1.8
2.4.0
+ false
+ true
diff --git a/spring-security-custom-permission/src/main/resources/application.properties b/spring-security-custom-permission/src/main/resources/application.properties
index 0b40f62fa9..4433a53ac7 100644
--- a/spring-security-custom-permission/src/main/resources/application.properties
+++ b/spring-security-custom-permission/src/main/resources/application.properties
@@ -1,6 +1,6 @@
server.port=8081
spring.datasource.driver-class-name=org.h2.Driver
-spring.datasource.url=jdbc:h2:mem:security_permission;DB_CLOSE_DELAY=-1
+spring.datasource.url=jdbc:h2:mem:security_permission;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=create-drop
diff --git a/spring-security-custom-permission/src/test/java/org/baeldung/web/LiveTest.java b/spring-security-custom-permission/src/test/java/org/baeldung/web/LiveTest.java
index 80b1390083..7e92765dcd 100644
--- a/spring-security-custom-permission/src/test/java/org/baeldung/web/LiveTest.java
+++ b/spring-security-custom-permission/src/test/java/org/baeldung/web/LiveTest.java
@@ -3,35 +3,45 @@ package org.baeldung.web;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import org.baeldung.Application;
import org.baeldung.persistence.model.Foo;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.IntegrationTest;
+import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.http.MediaType;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
import com.jayway.restassured.RestAssured;
import com.jayway.restassured.authentication.FormAuthConfig;
import com.jayway.restassured.response.Response;
import com.jayway.restassured.specification.RequestSpecification;
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = Application.class)
+@WebAppConfiguration
+@IntegrationTest("server.port:8082")
public class LiveTest {
- private final FormAuthConfig formAuthConfig = new FormAuthConfig("http://localhost:8081/login", "username", "password");
+ private final FormAuthConfig formAuthConfig = new FormAuthConfig("http://localhost:8082/login", "username", "password");
@Test
public void givenUserWithReadPrivilegeAndHasPermission_whenGetFooById_thenOK() {
- final Response response = givenAuth("john", "123").get("http://localhost:8081/foos/1");
+ final Response response = givenAuth("john", "123").get("http://localhost:8082/foos/1");
assertEquals(200, response.getStatusCode());
assertTrue(response.asString().contains("id"));
}
@Test
public void givenUserWithNoWritePrivilegeAndHasPermission_whenPostFoo_thenForbidden() {
- final Response response = givenAuth("john", "123").contentType(MediaType.APPLICATION_JSON_VALUE).body(new Foo("sample")).post("http://localhost:8081/foos");
+ final Response response = givenAuth("john", "123").contentType(MediaType.APPLICATION_JSON_VALUE).body(new Foo("sample")).post("http://localhost:8082/foos");
assertEquals(403, response.getStatusCode());
}
@Test
public void givenUserWithWritePrivilegeAndHasPermission_whenPostFoo_thenOk() {
- final Response response = givenAuth("tom", "111").contentType(MediaType.APPLICATION_JSON_VALUE).body(new Foo("sample")).post("http://localhost:8081/foos");
+ final Response response = givenAuth("tom", "111").contentType(MediaType.APPLICATION_JSON_VALUE).body(new Foo("sample")).post("http://localhost:8082/foos");
assertEquals(201, response.getStatusCode());
assertTrue(response.asString().contains("id"));
}
@@ -40,14 +50,14 @@ public class LiveTest {
@Test
public void givenUserMemberInOrganization_whenGetOrganization_thenOK() {
- final Response response = givenAuth("john", "123").get("http://localhost:8081/organizations/1");
+ final Response response = givenAuth("john", "123").get("http://localhost:8082/organizations/1");
assertEquals(200, response.getStatusCode());
assertTrue(response.asString().contains("id"));
}
@Test
public void givenUserMemberNotInOrganization_whenGetOrganization_thenForbidden() {
- final Response response = givenAuth("john", "123").get("http://localhost:8081/organizations/2");
+ final Response response = givenAuth("john", "123").get("http://localhost:8082/organizations/2");
assertEquals(403, response.getStatusCode());
}
@@ -55,7 +65,7 @@ public class LiveTest {
@Test
public void givenDisabledSecurityExpression_whenGetFooByName_thenError() {
- final Response response = givenAuth("john", "123").get("http://localhost:8081/foos?name=sample");
+ final Response response = givenAuth("john", "123").get("http://localhost:8082/foos?name=sample");
assertEquals(500, response.getStatusCode());
assertTrue(response.asString().contains("method hasAuthority() not allowed"));
}