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; /** *
 * @Class Name : SecUserVO.java (VO)
 * 
 * @Description : 스프링 시큐리티용으로, UserDtails 인터페이스를 구현한 사용자정보 VO 클래스 
 * 
 * 
 * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
 *
 * 
* * @ ------------ -------- --------------------------- * @ 수정일 수정자 수정내용 * @ ------------ -------- --------------------------- * @ 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 auth = null; /* 권한 목록 */ public void addAuthority(String authName) { if(auth == null) auth = new ArrayList(); auth.add(new SimpleGrantedAuthority(authName)); } /* 계정이 갖고있는 권한 목록을 리턴한다. * (non-Javadoc) * @see org.springframework.security.core.userdetails.UserDetails#getAuthorities() */ @Override public Collection 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; } }