itsm_ysm/src/main/java/nlib/security/SecUserVO.java
2021-12-17 13:44:56 +09:00

127 lines
3.8 KiB
Java

package nlib.security;
import java.util.ArrayList;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import nlib.cmm.service.NlibProperty;
import nlib.user.service.NlibLoginVO;
/**
* <pre>
* @Class Name : SecUserVO.java (VO)
*
* @Description : 스프링 시큐리티용으로, UserDtails 인터페이스를 구현한 사용자정보 VO 클래스
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 7. KNKIM 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP KNKIM
* @since 2021. 7. 7.
* @version 1.0
*
*/
public class SecUserVO extends NlibLoginVO implements UserDetails {
private static final long serialVersionUID = -8274004534207618048L;
/* 권한 ROLE 명칭 */
public static final String ROLE_USER = NlibProperty.getString("auth.role.user"); // 일반사용자
public static final String ROLE_ADMIN = NlibProperty.getString("auth.role.admin"); // 관리자
public static final String ROLE_SYSTEM = NlibProperty.getString("auth.role.system"); // 시스템관리자
/* 기본권한 ROLE */
public static final String DEFAULT_ROLE = ROLE_USER;
ArrayList<GrantedAuthority> auth = null; /* 권한 목록 */
public void addAuthority(String authName) {
if(auth == null) auth = new ArrayList<GrantedAuthority>();
auth.add(new SimpleGrantedAuthority(authName));
}
/* 계정이 갖고있는 권한 목록을 리턴한다.
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#getAuthorities()
*/
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return auth;
}
/* 계정의 비밀번호를 리턴한다.
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#getPassword()
*/
@Override
public String getPassword() {
return super.getPassword();
}
/* 계정의 이름을 리턴한다. (사용자ID:email형식의 LOGIN_USER_ID 정보)
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#getUsername()
*/
@Override
public String getUsername() {
// 로그인하는 지방문화원 코드 + 로그인사용자ID
return super.getUsername();
}
/* 계정이 만료되지 않았는 지 여부를 리턴한다. (true: 만료안됨)
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#isAccountNonExpired()
*/
@Override
public boolean isAccountNonExpired() {
// 계정 만료 기능 사용안함
return true;
}
/* 계정이 잠겨있지 않은 지 여부를 리턴한다. (true: 잠기지 않음)
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#isAccountNonLocked()
*/
@Override
public boolean isAccountNonLocked() {
// SNS 로그인만 허용하므로, 별도 계정 LOCK 기능 불필요
return true;
}
/* 비밀번호가 만료되지 않았는 지 리턴한다. (true: 만료안됨)
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#isCredentialsNonExpired()
*/
@Override
public boolean isCredentialsNonExpired() {
// 비밀번호 만료 기능 사용안함
return true;
}
/* 계정이 활성화(사용가능)된 상태인 지 여부를 리턴한다. (true: 활성화)
* (non-Javadoc)
* @see org.springframework.security.core.userdetails.UserDetails#isEnabled()
*/
@Override
public boolean isEnabled() {
// 계정 활성화, 비활성화 기능 사용 안함
return true;
}
}