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 }