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("${security.hook.name:hook}") 29 private String hookName; 30 31 @Value("${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().getRole(); 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 }