diff --git a/configserver-bootstrap/src/main/resources/bootstrap.yml b/configserver-bootstrap/src/main/resources/bootstrap.yml index 258dbb5..6d0b26e 100644 --- a/configserver-bootstrap/src/main/resources/bootstrap.yml +++ b/configserver-bootstrap/src/main/resources/bootstrap.yml @@ -6,7 +6,13 @@ spring: server: bootstrap: true git: - uri: https://github.com/spring-cloud-samples/config-repo + uri: file://${HOME}/dev/demo/config-repo +encrypt: + failOnError: false + keyStore: + location: classpath:keystore.jks + password: ${KEYSTORE_PASSWORD:foobar} # don't use a default in production + alias: test --- spring: diff --git a/configserver-bootstrap/src/main/resources/keystore.jks b/configserver-bootstrap/src/main/resources/keystore.jks new file mode 100644 index 0000000..0ad98ea Binary files /dev/null and b/configserver-bootstrap/src/main/resources/keystore.jks differ diff --git a/oauth2-zuul/README.md b/oauth2-zuul/README.md new file mode 100644 index 0000000..3abb2ae --- /dev/null +++ b/oauth2-zuul/README.md @@ -0,0 +1 @@ +This project is a sample of a client application with OAuth2 and Zuul \ No newline at end of file diff --git a/oauth2-zuul/pom.xml b/oauth2-zuul/pom.xml new file mode 100644 index 0000000..6b02c90 --- /dev/null +++ b/oauth2-zuul/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + org.springframework.cloud.sample + spring-cloud-sample-oauth2-zuul + ${spring-cloud.version} + jar + + spring-cloud-sample-oauth2-zuul + Demo project for Spring Cloud + + + org.springframework.boot + spring-boot-starter-parent + 1.3.5.RELEASE + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + UTF-8 + 1.7 + Brixton.BUILD-SNAPSHOT + + + + + org.springframework.cloud + spring-cloud-starter-oauth2 + + + org.springframework.cloud + spring-cloud-starter-zuul + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + maven-deploy-plugin + + true + + + + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + diff --git a/oauth2-zuul/src/main/java/demo/ZuulApplication.java b/oauth2-zuul/src/main/java/demo/ZuulApplication.java new file mode 100644 index 0000000..1e2ad46 --- /dev/null +++ b/oauth2-zuul/src/main/java/demo/ZuulApplication.java @@ -0,0 +1,14 @@ +package demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso; + +@SpringBootApplication +@EnableOAuth2Sso +public class ZuulApplication { + + public static void main(String[] args) { + SpringApplication.run(ZuulApplication.class, args); + } +} diff --git a/oauth2-zuul/src/main/resources/application.properties b/oauth2-zuul/src/main/resources/application.properties new file mode 100644 index 0000000..7999064 --- /dev/null +++ b/oauth2-zuul/src/main/resources/application.properties @@ -0,0 +1,6 @@ +security.oauth2.client.clientId: acme +security.oauth2.client.clientSecret: acmesecret +security.oauth2.client.accessTokenUri: https://example.com +security.oauth2.client.userAuthorizationUri: https://example.com +security.oauth2.resource.user-info-uri: https://example.com +# debug: \ No newline at end of file diff --git a/oauth2-zuul/src/test/java/demo/ZuulApplicationTests.java b/oauth2-zuul/src/test/java/demo/ZuulApplicationTests.java new file mode 100644 index 0000000..79ac75d --- /dev/null +++ b/oauth2-zuul/src/test/java/demo/ZuulApplicationTests.java @@ -0,0 +1,35 @@ +package demo; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.IntegrationTest; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.boot.test.TestRestTemplate; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.web.client.RestTemplate; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = ZuulApplication.class) +@IntegrationTest({ "debug=true", "server.port=0" }) +@WebAppConfiguration +public class ZuulApplicationTests { + + private RestTemplate restTemplate = new TestRestTemplate(); + + @Value("${local.server.port}") + int port; + + @Test + public void useRestTemplate() throws Exception { + ResponseEntity entity = this.restTemplate.getForEntity("http://localhost:" + this.port, String.class); + assertEquals(HttpStatus.FOUND, entity.getStatusCode()); + assertEquals("http://localhost:" + this.port + "/login", entity.getHeaders().getLocation().toString()); + } + +} diff --git a/pom.xml b/pom.xml index 29bcd29..2d120e8 100644 --- a/pom.xml +++ b/pom.xml @@ -38,6 +38,7 @@ netflix-sidecar noweb oauth2-ribbon + oauth2-zuul ribbon-default-config ribbon-eureka sleuth