127 lines
3.8 KiB
Java
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;
|
|
}
|
|
|
|
}
|