Spring Cloud for Cloudfoundry makes it easy to run +Spring Cloud apps in +Cloud Foundry (the Platform as a +Service). Cloud Foundry has the notion of a "service", which is +middlware that you "bind" to an app, essentially providing it with an +environment variable containing credentials (e.g. the location and +username to use for the service).
+The spring-cloud-cloudfoundry-web project provides basic support for
+some enhanced features of webapps in Cloud Foundry: binding
+automatically to single-sign-on services and optionally enabling
+sticky routing for discovery.
The spring-cloud-cloudfoundry-discovery project provides an
+implementation of Spring Cloud Commons DiscoveryClient so you can
+@EnableDiscoveryClient and provide your credentials as
+spring.cloud.cloudfoundry.discovery.[email,password] and then you
+can use the DiscoveryClient directly or via a LoadBalancerClient
+(also *.url if you are not connecting to
+Pivotal Web Services).
The first time you use it the discovery client might be slow owing to +the fact that it has to get an access token from Cloud Foundry.
+Discovery
+Here’s a Spring Cloud app with Cloud Foundry discovery:
+@Grab('org.springframework.cloud:spring-cloud-cloudfoundry')
+@RestController
+@EnableDiscoveryClient
+class Application {
+
+ @Autowired
+ DiscoveryClient client
+
+ @RequestMapping('/')
+ String home() {
+ 'Hello from ' + client.getLocalServiceInstance()
+ }
+
+}
+If you run it without any service bindings:
+$ spring jar app.jar app.groovy +$ cf push -p app.jar+
It will show its app name in the home page.
+The DiscoveryClient can lists all the apps in a space, according to
+the credentials it is authenticated with, where the space defaults to
+the one the client is running in (if any). If neither org nor space
+are configured, they default per the user’s profile in Cloud Foundry.
Single Sign On
+|
+ Note
+ |
++All of the OAuth2 SSO and resource server features moved to Spring Boot +in version 1.3. You can find documentation in the +Spring Boot user guide. + | +
This project provides automatic binding from CloudFoundry service
+credentials to the Spring Boot features. If you have a CloudFoundry
+service called "sso", for instance, with credentials containing
+"client_id", "client_secret" and "auth_domain", it will bind
+automatically to the Spring OAuth2 client that you enable with
+@EnableOAuth2Sso (from Spring Boot). The name of the service can be
+parameterized using spring.oauth2.sso.serviceId.