View Javadoc
1   package cn.home1.cloud.netflix.eureka;
2   
3   import lombok.extern.slf4j.Slf4j;
4   
5   import org.springframework.beans.factory.annotation.Autowired;
6   import org.springframework.boot.SpringApplication;
7   import org.springframework.boot.autoconfigure.SpringBootApplication;
8   import org.springframework.boot.autoconfigure.security.SecurityProperties;
9   import org.springframework.cloud.netflix.sidecar.EnableSidecar;
10  import org.springframework.context.ConfigurableApplicationContext;
11  import org.springframework.core.env.Environment;
12  import org.springframework.security.core.userdetails.UserDetails;
13  import org.springframework.util.StringUtils;
14  
15  /**
16   * The @EnableSidecar annotation includes @EnableCircuitBreaker, @EnableDiscoveryClient, and @EnableZuulProxy
17   */
18  @EnableSidecar
19  @SpringBootApplication
20  @Slf4j
21  public class EurekaSidecarApplication {
22  
23      @Autowired
24      private Environment environment;
25  
26      @Autowired
27      private SecurityProperties securityProperties;
28  
29      public static void main(final String... args) {
30          final ConfigurableApplicationContext context = SpringApplication.run(EurekaSidecarApplication.class, args);
31  
32          final EurekaSidecarApplication application = context.getBean(EurekaSidecarApplication.class);
33          application.printInfo();
34      }
35  
36      /**
37       * see: {@link org.springframework.security.provisioning.InMemoryUserDetailsManager#createUser(UserDetails)}
38       */
39      public void printInfo() {
40          //log.info("server.context-path: {}", this.environment.getProperty("server.context-path"));
41          log.info("server.servlet.context-path (server.context-path deprecated since spring-boot 2.x): {}",
42              this.environment.getProperty("server.servlet.context-path"));
43          //log.info("management.context-path: {}", this.environment.getProperty("management.context-path"));
44          log.info("management.endpoints.web.base-path (management.context-path deprecated since spring-boot 2.x): {}",
45              this.environment.getProperty("management.endpoints.web.base-path"));
46  
47          final String passwordFromSystemEnv = System.getenv("SPRING_SECURITY_USER_PASSWORD");
48          if (StringUtils.isEmpty(passwordFromSystemEnv)) {
49              final String username = this.securityProperties.getUser().getName();
50              final String password = this.securityProperties.getUser().getPassword();
51  
52              log.info("username: {}, randomly generated password: {}", username, password);
53          }
54      }
55  }