UserInfrVo.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.its.op.security;
  2. import com.its.op.dto.its.oper.TbUserInfrDto;
  3. import com.its.op.entity.its.oper.TbUserInfr;
  4. import io.swagger.annotations.ApiModelProperty;
  5. import lombok.*;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.springframework.security.core.GrantedAuthority;
  9. import org.springframework.security.core.authority.SimpleGrantedAuthority;
  10. import org.springframework.security.core.userdetails.UserDetails;
  11. import java.util.Collection;
  12. import java.util.HashSet;
  13. import java.util.Set;
  14. /**
  15. * 사용자정보 Entity Class
  16. */
  17. @Slf4j
  18. @Data
  19. @NoArgsConstructor(access = AccessLevel.PROTECTED)
  20. @Builder
  21. @AllArgsConstructor
  22. @EqualsAndHashCode(of = "userId")
  23. public class UserInfrVo implements UserDetails {
  24. private static final long serialVersionUID = 1L;
  25. @ApiModelProperty("사용자ID") // N VARCHAR(20)
  26. private String userId;
  27. @ApiModelProperty("암호") // Y VARCHAR(64)
  28. private String pwd;
  29. @ApiModelProperty("성명") // Y VARCHAR(30)
  30. private String name;
  31. @ApiModelProperty("회사") // Y VARCHAR(50)
  32. private String comp;
  33. @ApiModelProperty("전화번호") // Y VARCHAR(128)
  34. private String tel;
  35. @ApiModelProperty("주소") // Y VARCHAR(200)
  36. private String addr;
  37. @ApiModelProperty("이동전화") // Y VARCHAR(128)
  38. private String mobile;
  39. @ApiModelProperty("이메일") // Y VARCHAR(128)
  40. private String emal;
  41. @ApiModelProperty("삭제 여부") // Y CHAR(1)
  42. private String delYn;
  43. @ApiModelProperty("등록일자") // Y VARCHAR(14)
  44. private String rgstymd;
  45. @ApiModelProperty("수정일자") // Y VARCHAR(14)
  46. private String crctymd;
  47. @ApiModelProperty("힌트질문") // Y VARCHAR(7)
  48. private String hintQues;
  49. @ApiModelProperty("힌트질문답") // Y VARCHAR(100)
  50. private String hintAns;
  51. @ApiModelProperty("그룹ID") // Y VARCHAR(30)
  52. private String gropId;
  53. @ApiModelProperty("운영시스템ID") // Y VARCHAR(30)
  54. private String operSystId;
  55. public TbUserInfrDto toDto() {
  56. return TbUserInfrDto.builder()
  57. .userId(this.userId)
  58. .pwd(this.pwd)
  59. .name(this.name)
  60. .comp(this.comp)
  61. .tel(this.tel)
  62. .addr(this.addr)
  63. .mobile(this.mobile)
  64. .emal(this.emal)
  65. .delYn(this.delYn)
  66. .rgstymd(this.rgstymd)
  67. .crctymd(this.crctymd)
  68. .hintQues(this.hintQues)
  69. .hintAns(this.hintAns)
  70. .gropId(this.gropId)
  71. .operSystId(this.operSystId)
  72. .build();
  73. }
  74. public TbUserInfr toEntity() {
  75. return TbUserInfr.builder()
  76. .userId(this.userId)
  77. .pwd(this.pwd)
  78. .name(this.name)
  79. .comp(this.comp)
  80. .tel(this.tel)
  81. .addr(this.addr)
  82. .mobile(this.mobile)
  83. .emal(this.emal)
  84. .delYn(this.delYn)
  85. .rgstymd(this.rgstymd)
  86. .crctymd(this.crctymd)
  87. .hintQues(this.hintQues)
  88. .hintAns(this.hintAns)
  89. .gropId(this.gropId)
  90. .operSystId(this.operSystId)
  91. .build();
  92. }
  93. @Override
  94. public Collection<? extends GrantedAuthority> getAuthorities() {
  95. Set<GrantedAuthority> roles = new HashSet<GrantedAuthority>();
  96. if (StringUtils.equalsIgnoreCase("GROPMANAGER", this.gropId)) {
  97. roles.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
  98. }
  99. else if (StringUtils.equalsIgnoreCase("GROPSYSOP", this.gropId)) {
  100. roles.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
  101. }
  102. else {
  103. roles.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
  104. }
  105. log.error("getAuthorities: {}", roles.toString());
  106. return roles;
  107. }
  108. @Override
  109. public String getPassword() {
  110. log.error("getPassword: {}", this.pwd);
  111. WebPasswordEncoder be = new WebPasswordEncoder();
  112. String pwd = be.encode(this.pwd);
  113. log.error("getPassword: {}, encoded.", this.pwd);
  114. return pwd;
  115. }
  116. @Override
  117. public String getUsername() {
  118. // log.error("{}", Thread.currentThread().getStackTrace()[0].toString());
  119. // log.error("{}", Thread.currentThread().getStackTrace()[1].toString());
  120. // log.error("{}", Thread.currentThread().getStackTrace()[2].toString());
  121. // log.error("{}", Thread.currentThread().getStackTrace()[3].toString());
  122. log.error("getUsername: {}, {}.{}", this.userId, Thread.currentThread().getStackTrace()[2].getClassName(), Thread.currentThread().getStackTrace()[2].getMethodName());
  123. return this.userId;
  124. }
  125. @Override
  126. public boolean isAccountNonExpired() {
  127. log.error("isAccountNonExpired");
  128. return true;
  129. }
  130. @Override
  131. public boolean isAccountNonLocked() {
  132. log.error("isAccountNonLocked");
  133. return true;
  134. }
  135. @Override
  136. public boolean isCredentialsNonExpired() {
  137. log.error("isCredentialsNonExpired");
  138. return true;
  139. }
  140. @Override
  141. public boolean isEnabled() {
  142. log.error("isEnabled: {}", StringUtils.equalsIgnoreCase("N", this.delYn));
  143. return StringUtils.equalsIgnoreCase("N", this.delYn);
  144. }
  145. }