diff --git a/spring-cloud-config/client/pom.xml b/spring-cloud-config/client/pom.xml
new file mode 100644
index 0000000000..46212e1e89
--- /dev/null
+++ b/spring-cloud-config/client/pom.xml
@@ -0,0 +1,80 @@
+
+
+ 4.0.0
+
+
+ com.baeldung.spring.cloud
+ spring-cloud-config
+ 0.0.1-SNAPSHOT
+
+ client
+ jar
+
+ client
+ Demo project for Spring Cloud Config Client
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-config
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Brixton.BUILD-SNAPSHOT
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
+ spring-snapshots
+ Spring Snapshots
+ https://repo.spring.io/snapshot
+
+ true
+
+
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+ false
+
+
+
+
+
diff --git a/spring-cloud-config/client/src/main/java/com/baeldung/spring/cloud/config/client/ConfigClient.java b/spring-cloud-config/client/src/main/java/com/baeldung/spring/cloud/config/client/ConfigClient.java
new file mode 100644
index 0000000000..74ed41728f
--- /dev/null
+++ b/spring-cloud-config/client/src/main/java/com/baeldung/spring/cloud/config/client/ConfigClient.java
@@ -0,0 +1,34 @@
+package com.baeldung.spring.cloud.config.client;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.http.MediaType;
+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.RestController;
+
+@SpringBootApplication
+@RestController
+public class ConfigClient {
+
+ @Value("${user.role}")
+ private String role;
+
+ @Value("${user.password}")
+ private String password;
+
+ public static void main(String[] args) {
+ SpringApplication.run(ConfigClient.class, args);
+ }
+
+ @RequestMapping(
+ value = "/whoami/{username}",
+ method = RequestMethod.GET,
+ produces = MediaType.TEXT_PLAIN_VALUE
+ )
+ public String whoami(@PathVariable("username") String username) {
+ return String.format("Hello %s! You are a(n) %s and your password is '%s'.\n", username, role, password);
+ }
+}
diff --git a/spring-cloud-config/client/src/main/resources/bootstrap.properties b/spring-cloud-config/client/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000000..18982a93b5
--- /dev/null
+++ b/spring-cloud-config/client/src/main/resources/bootstrap.properties
@@ -0,0 +1,5 @@
+spring.application.name=config-client
+spring.profiles.active=development
+spring.cloud.config.uri=http://localhost:8888
+spring.cloud.config.username=root
+spring.cloud.config.password=s3cr3t
diff --git a/spring-cloud-config/client/src/test/java/com/baeldung/spring/cloud/config/client/ConfigClientTests.java b/spring-cloud-config/client/src/test/java/com/baeldung/spring/cloud/config/client/ConfigClientTests.java
new file mode 100644
index 0000000000..c0badeaf61
--- /dev/null
+++ b/spring-cloud-config/client/src/test/java/com/baeldung/spring/cloud/config/client/ConfigClientTests.java
@@ -0,0 +1,18 @@
+package com.baeldung.spring.cloud.config.client;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = ConfigClient.class)
+@WebAppConfiguration
+public class ConfigClientTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/spring-cloud-config/pom.xml b/spring-cloud-config/pom.xml
new file mode 100644
index 0000000000..1185fae5d7
--- /dev/null
+++ b/spring-cloud-config/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ com.baeldung.spring.cloud
+ spring-cloud-config
+ 0.0.1-SNAPSHOT
+ pom
+
+
+ server
+ client
+
+
+
diff --git a/spring-cloud-config/server/pom.xml b/spring-cloud-config/server/pom.xml
index 00eb0d34da..897a33028f 100644
--- a/spring-cloud-config/server/pom.xml
+++ b/spring-cloud-config/server/pom.xml
@@ -3,20 +3,15 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.baeldung.spring.cloud.config
+
+ com.baeldung.spring.cloud
+ spring-cloud-config
+ 0.0.1-SNAPSHOT
+
server
- 0.0.1-SNAPSHOT
- jar
server
- Demo project for Spring Boot
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 1.3.7.RELEASE
-
-
+ Demo project for Spring Cloud Config Server
UTF-8
diff --git a/spring-cloud-config/server/src/main/resources/application.properties b/spring-cloud-config/server/src/main/resources/application.properties
index cc84725748..46b3bf8089 100644
--- a/spring-cloud-config/server/src/main/resources/application.properties
+++ b/spring-cloud-config/server/src/main/resources/application.properties
@@ -1,4 +1,9 @@
server.port=8888
spring.cloud.config.server.git.uri=${CONFIG_REPO}
+spring.cloud.config.server.git.clone-on-start=true
security.user.name=root
-security.user.password=s3cr3t
\ No newline at end of file
+security.user.password=s3cr3t
+encrypt.key-store.location=classpath:/config-server.jks
+encrypt.key-store.password=my-s70r3-s3cr3t
+encrypt.key-store.alias=config-server-key
+encrypt.key-store.secret=my-k34-s3cr3t
diff --git a/spring-cloud-config/server/src/main/resources/config-server.jks b/spring-cloud-config/server/src/main/resources/config-server.jks
new file mode 100644
index 0000000000..f3dddb4a8f
Binary files /dev/null and b/spring-cloud-config/server/src/main/resources/config-server.jks differ