View Javadoc
1   package cn.home1.cloud.config.server.security;
2   
3   import static lombok.AccessLevel.PRIVATE;
4   import static org.apache.commons.lang3.StringUtils.isBlank;
5   
6   import lombok.Getter;
7   import lombok.Setter;
8   import lombok.extern.slf4j.Slf4j;
9   
10  import org.springframework.beans.factory.annotation.Autowired;
11  import org.springframework.beans.factory.annotation.Value;
12  import org.springframework.boot.autoconfigure.security.SecurityProperties;
13  
14  import java.util.List;
15  import java.util.UUID;
16  
17  import javax.annotation.PostConstruct;
18  
19  @Getter
20  @Setter
21  @Slf4j
22  public class PrivilegedUserProperties {
23  
24      @Autowired
25      @Getter(value = PRIVATE)
26      private SecurityProperties securityProperties;
27  
28      @Value("${spring.security.hook.name:hook}")
29      private String hookName;
30  
31      @Value("${spring.security.hook.password:hook_pass}")
32      private String hookPassword;
33  
34      public String getAdminName() {
35          return this.securityProperties.getUser().getName();
36      }
37  
38      public String getAdminPassword() {
39          return this.securityProperties.getUser().getPassword();
40      }
41  
42      public List<String> getAdminRoles() {
43          return this.securityProperties.getUser().getRoles();
44      }
45  
46      @PostConstruct
47      private void init() {
48          if (isBlank(this.getAdminPassword())) {
49              this.securityProperties.getUser().setPassword(UUID.randomUUID().toString());
50              log.info("auto generated admin password, username:{}, password:{}", this.getAdminName(), this.getAdminPassword());
51          }
52  
53          if (isBlank(this.hookPassword)) {
54              this.hookPassword = UUID.randomUUID().toString();
55              log.info("auto generated hook password, username:{}, password:{}", this.hookName, this.hookPassword);
56          }
57      }
58  }