
스프링 처음부분에 이사진넣을것
자동 로그인 remember-me
: 쿠키 이용
<remember-me> 속성 | 설명 |
key | 쿠키에 사용되는 값을 암호화하기 위한 key |
data-source-ref | DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보 기록 |
지정된 이름의 테이블 생성 시, 지정된 SQL문 실행 → 처리 OR 구현
-- 로그인 유지에 필요한 정보 보관
create table persistent_logins (
username varchar(64) not null,
series varchar(64) primary key,
token varchar(64) not null,
last_used timestamp not null
);
security-context.xml
<?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">
<!-- web.xml를 수정하여 톰캣이 스프링 컨텍스트 인식 -->
<!-- 수동 접근 제어 객체 생성 -->
<bean id="customAccessDenied"
class="org.zerock.security.CustomAccessDeniedHandler"></bean>
<bean id="customLoginSuccess"
class="org.zerock.security.CustomLoginSuccessHandler"></bean>
<bean id="bcryptPasswordEncodere"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>
<!--<bean id="customUserDetailsService" class="org.zerock.security.CustomUserDetailsService"></bean> -->
<security:http>
<!-- 모든 사용자 접속용 분기 설정 -->
<security:intercept-url pattern="/sample/all"
access="permitAll" />
<!-- 멤버 접속용 분기 설정 -->
<security:intercept-url
pattern="/sample/member" access="hasRole('ROLE_MEMBER')" />
<!-- 관리자 접속용 분기 설정 -->
<security:intercept-url pattern="/sample/admin"
access="hasRole('ROLE_ADMIN')" />
<security:access-denied-handler
ref="customAccessDenied" />
<security:form-login login-page="/customLogin"
authentication-success-handler-ref="customLoginSuccess" />
<security:logout logout-url="/customLogout"
invalidate-session="true" />
<security:remember-me
data-source-ref="dataSource" token-validity-seconds="604800" />
<!-- 접근 제어 자동 처리, 권한 없는 url 접근 제어 -->
<!-- <security:access-denied-handler error-page="/accessError"/> -->
</security:http>
<security:authentication-manager>
<security:authentication-provider
user-service-ref="customUserDetailsService">
<security:password-encoder
ref="bcyptPasswordEncoder" />
</security:authentication-provider>
</security:authentication-manager>
</beans>
customLogin.jsp
<input type="checkbox" name="remeber-me">Remeber-me</input>
내일까지 P734
705 기존 프로젝트에 스프링 시큐리티 접목하기 까지 완료