MemberVO
package kr.or.ddit.vo;
import java.util.Date;
import java.util.List;
import lombok.Data;
@Data
public class MemberVO {
private int userNo;
private String userId;
private String userName;
private String userPw;
private Date regDate;
private Date updDate;
private List<MemberAuth> authList;
}
MemberAuthVO
package kr.or.ddit.vo;
import lombok.Data;
@Data
public class MemberAuth {
private int userNo;
private String auth;
}
→ 데이터베이스 관련 라이브러리
→ customUserDetailsService 빈 등록
→ security:authentication-provider> 태그 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="<http://www.springframework.org/schema/beans>"
xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"
xmlns:security="<http://www.springframework.org/schema/security>"
xsi:schemaLocation="<http://www.springframework.org/schema/beans> <http://www.springframework.org/schema/beans/spring-beans.xsd>
<http://www.springframework.org/schema/security> <http://www.springframework.org/schema/security/spring-security.xsd>">
<bean id="customAccessDenied" class="kr.or.ddit.security.CustomAccessDeniedhandler"></bean>
<bean id="customLoginSuccess" class="kr.or.ddit.security.CustomLoginSuccessHandler"></bean>
<!-- 사용자가 정의한 비밀번호 암호화 처리기를 빈으로 등록 **(암호화 안쓸땐 이거)**-->
<!-- <bean id="customPasswordEncoder" class="kr.or.ddit.security.CustomNoOpPasswordEncoder"></bean> -->
<!-- 스프링 시큐리티에서 제공하는 BCryptPasswordEncoder 클래스를 자바빈으로 등록 **(암호화 쓸땐 이거)**-->
<bean id="bcryptPasswordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>
**<!-- 사용자 정의 사용자 상세 기능 ***** 중요!! -->
<bean id="customUserDetailsService" class="kr.or.ddit.security.CustomUserDetailsService"></bean>**
<security:http>
<security:intercept-url pattern="/board/list" access="permitAll"/>
<security:intercept-url pattern="/board/register" access="hasRole('ROLE_MEMBER')"/>
<security:intercept-url pattern="/notice/list" access="permitAll"/>
<security:intercept-url pattern="/notice/register" access="hasRole('ROLE_ADMIN')"/>
<!-- 로그인 성공 후 처리를 담당하는 처리자로 지정한다. -->
<security:form-login login-page="/login" authentication-success-handler-ref="customLoginSuccess"/>
<!-- 로그아웃 처리를 위한 URI를 지정하고, 로그아웃 한 후에 세션을 무효화하기 위한 설정을 true로 한다. -->
<security:logout logout-url="/logout" invalidate-session="true"/>
<security:access-denied-handler ref="customAccessDenied"/>
</security:http>
<!-- 지정된 아이디와 패스워드로 로그인이 가능하도록 설정한다. -->
<security:authentication-manager>
<security:authentication-provider **user-service-ref="customUserDetailsService"**>
<security:password-encoder ref="bcryptPasswordEncoder"/>
</security:authentication-provider>
</security:authentication-manager>
</beans>