카테고리 없음

Spring 09 - Spring Web Security 下

나주나주 2024. 3. 11. 17:52

스프링 처음부분에 이사진넣을것

 

 

자동 로그인 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 기존 프로젝트에 스프링 시큐리티 접목하기 까지 완료