Spring Security 3 다 중 사용자 로그 인 8 쿠키 기반 자동 로그 인

3260 단어 Spring Security
Spring Security 는 우리 에 게 두 가지 방식 의 자동 로그 인 을 제공 합 니 다.하 나 는 Cookie 기반 의 자동 로그 인 입 니 다.이러한 자동 로그 인 기능 을 실현 하려 면 TokenBased Remember MeServices 류 를 사용 해 야 합 니 다.자신의 특수 로그 인 을 확장 하려 면 이 종 류 를 계승 할 수 있 습 니 다.하 나 는 지속 적 인 저장 소 를 바탕 으로 하 는 자동 로그 인 입 니 다.Persistent TokenBased Remember MeServices 류 를 사용 해 야 합 니 다.둘 다 추상 적 인 추상 적 인 AbstractRemember MeServices 를 계승 하여 Remember MeServices 인 터 페 이 스 를 실 현 했 습 니 다.Remember MeServices 소스 코드 를 보면 이 인 터 페 이 스 는 세 가지 방법 을 제 공 했 습 니 다.autoLogin 방법 은 자동 로그 인 기능 을 실현 하 는 것 입 니 다.loginSuccess 는 첫 번 째 로그 인 에 성 공 했 을 때 사용자 관련 증빙 및 자동 로그 인 관련 설정 을 쿠키 또는 영구 화 저장 소 에 기록 한 것 입 니 다.loginFailure 는 저희 가 비밀번호 수정 이나 쿠키 만 료 등 자동 로그 인 을 할 때 로그 인 에 실 패 했 을 때 호출 된 것 으로 관련 쿠키 또는 영구 화 된 정 보 를 삭제 하 는 역할 을 합 니 다.로그 인하 지 않 았 지만 로그 인 인증 이 필요 한 자원 에 접근 할 때 Remember MeAuthenticationFilter 필 터 는 이 방법 을 호출 하고 쿠키 나 영구적 저장 을 통 해 사용자 증빙 관련 정 보 를 얻 으 며 특유 의 Remember MeAuthenticationToken 과 Remember MeAuthenticationProvider 를 통 해 이전 사용자 와 유사 한 로그 인 절 차 를 실현 합 니 다.
 
    쿠키 기반 자동 로그 인 을 어떻게 실현 하 는 지 살 펴 보 자.
 
    1.RememberService 서비스 사용
 <remember-me services-ref="rememberMeServices" key="ZhongGang"/>

 
    2.자동 로그 인 증명서 저장 방식 설정
 
    <beans:bean id="rememberMeServices"
                class="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
        <beans:property name="key" value="ZhongGang"/>
        <!--<beans:property name="alwaysRemember" value="true"/>-->
        <beans:property name="parameter" value="rememberMe"/>
        <beans:property name="tokenValiditySeconds" value="604800"/>
        <beans:property name="userDetailsService" ref="userService"/>
    </beans:bean>

 
    마지막 으로 로그 인 폼 을 차단 하 는 필터 가 필요 합 니 다.즉,Abstract Authentication Processing Filter 류 에 이 rememberMeServices 를 설정 하거나 계승 해 야 합 니 다.
 
 
    <beans:bean id="multipleAuthenticationProcessingFilter"
                class="com.template.security.filter.MultipleAuthenticationProcessingFilter">
        <beans:constructor-arg value="/login/check"/>
        <beans:property name="tokenResolvers">
            <beans:list>
                <beans:ref bean="backendAuthenticationTokenResolver"/>
                <beans:ref bean="forendAuthenticationTokenResolver"/>
            </beans:list>
        </beans:property>
        <beans:property name="authenticationManager" ref="authenticationManager"/>
        <beans:property name="authenticationSuccessHandler" ref="multipleAuthenticationSuccessHandler"/>
        <beans:property name="authenticationFailureHandler" ref="multipleAuthenticationFailureHandler"/>
        <beans:property name="rememberMeServices" ref="rememberMeServices"/>
    </beans:bean>

좋은 웹페이지 즐겨찾기