No description or website provided.
Shell Batchfile Java
Latest commit 911f79d Nov 7, 2016 @spencergibb spencergibb committed on GitHub Merge pull request #19 from markfisher/rabbit-instead-of-redis
rabbitmq instead of redis in docker-compose.yml

Config Server Sample

NOTE: This project requires rabbitmq running on localhost.

Run this project as a Spring Boot app, e.g. import into IDE and run main method, or use Maven:

$ ./mvnw spring-boot:run


$ ./mvnw package
$ java -jar target/*.jar

It will start up on port 8888 and serve configuration data from "":


You need to be running rabbitmq locally (there is a docker-compose.yml if you would like to use that). This is to support broadcast of config changes to client apps via Spring Cloud Stream. If you want to play and don't need that feature just comment out the monitor and rabbitmq dependencies.


Path Description
/{app}/{profile} Configuration data for app in Spring profile (comma-separated).
/{app}/{profile}/{label} Add a git label
/{app}/{profiels}{label}/{path} An environment-specific plain text config file (at "path")


The server is not secure by default. You can add HTTP Basic authentication by including an extra dependency on Spring Security (e.g. via spring-boot-starter-security). The user name is "user" and the password is printed on the console on startup (standard Spring Boot approach), e.g.

2014-10-23 08:55:01.579  INFO 8185 --- [           main] b.a.s.AuthenticationManagerConfiguration :

Using default security password: 83805c57-8c76-4940-ae17-299359888177

There is also a password stored in a keystore in the jar file if you want to use that for a more realistic simulation of a real system. To unlock the password you need the full strength JCE extensions (download from Oracle and unpack the zip then copy the jar files to <JAVA_HOME>/jre/lib/security), and the keystore password ("foobar" stored in plain text in this README for the purposes of a demo, but in a real system you would keep it secret and only expose via environment variables). The password is bound to the app from the Spring environment key keystore.password (so an OS environment variable KEYSTORE_PASSWORD works). E.g.

$ KEYSTORE_PASSWORD=foobar java -jar target/*.jar