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