[SPRING] 봄 보안 사용자 정의 sessionmanagementfilter 같은 주문 값 오류
SPRING봄 보안 사용자 정의 sessionmanagementfilter 같은 주문 값 오류
Spring Security의 세션 관리 필터를 사용자 정의하려고하는데, 필자의
Spring Security의 구성은 다음과 같습니다.
<http auto-config="false" use-expressions="true">
<custom-filter position="SESSION_MANAGEMENT_FILTER" ref="filtroGestionSesion" />
<intercept-url pattern="/resources/**" filters="none"/>
<intercept-url pattern="/faces/javax.faces.resource/**" filters="none"/>
<intercept-url pattern="/faces/inicio.xhtml" access="permitAll"/>
<intercept-url pattern="/faces/paginas/autenticacion/login.xhtml*" access="permitAll"/>
<intercept-url pattern="/faces/paginas/administracion/**" access="isAuthenticated()"/>
<intercept-url pattern="/faces/paginas/barco/**" access="isAuthenticated()"/>
<intercept-url pattern="/faces/paginas/catalogo/**" access="permitAll"/>
<intercept-url pattern="/faces/paginas/error/**" access="permitAll"/>
<intercept-url pattern="/faces/paginas/plantillas/**" access="permitAll"/>
<intercept-url pattern="/**" access="denyAll" />
<form-login login-processing-url="/j_spring_security_check"
login-page="/faces/paginas/autenticacion/login.xhtml"
default-target-url="/faces/paginas/administracion/inicioAdmon.xhtml"
always-use-default-target="true"
authentication-failure-url="/faces/paginas/autenticacion/login.xhtml?error=authentication" />
<logout logout-url="/j_spring_security_logout"
logout-success-url="/faces/inicio.xhtml"
invalidate-session="true" />
</http>
<global-method-security pre-post-annotations="enabled" />
<authentication-manager>
<authentication-provider>
<user-service>
<user name="myuser" password="myuser" authorities="" />
</user-service>
</authentication-provider>
</authentication-manager>
<beans:bean id="filtroGestionSesion" class="springSecurity.FiltroGestionSesion">
<beans:constructor-arg ref="securityContextRepository" />
<beans:property name="invalidSessionUrl" value="/faces/paginas/autenticacion/login.xhtml?error=timeout" />
</beans:bean>
<beans:bean id="securityContextRepository" class="org.springframework.security.web.context.HttpSessionSecurityContextRepository" />
내 커스텀 필터 (springSecurity.FiltroGestionSesion)를 가진 클래스는 Spring Security (org.springframework.security.web.session.SessionManagementFilter)에서 복사하여 붙여 넣기하지만 패키지 이름, 클래스 이름 및 내가 추가 한 커스텀 코드를 변경한다. doFilter 메서드에 추가합니다.
왜 작동하지 않고 두 필터가 모두 같은 순서로 오류가 발생 했습니까?
내 필터의 위치가 기본 필터와 충돌하지 않도록
다른 요소를 제거하거나 다른 것을 사용자 정의해야합니까?
어느 누구도 SESSION_MANAGEMENT_FILTER의 위치에서 사용자 정의 필터를 작동시키는 방법을 알고 있으므로 기본 필터를 비활성화 할 수 있습니까?
미리 감사드립니다.
해결법
-
==============================
1.나는 해결책을 찾았습니다. 누군가 흥미로워지면 여기에 넣었습니다.
나는 해결책을 찾았습니다. 누군가 흥미로워지면 여기에 넣었습니다.
기본 세션 관리 필터를 비활성화하는 방법은
요소를 에서 제거하지 않고 세션 고정 방지 기능을 추가하여 제거하는 것입니다. <session-management session-fixation-protection="none" />
이렇게하면 기본 세션 관리 필터가 실행되지 않으므로 필터 체인에 충돌이없는 위치에 사용자 지정 필터를 추가 할 수 있습니다.
내 webapp에서 스프링 보안의 디버그 로그를 살펴 보았습니다.
누군가가 도움이되기를 바랍니다.
from https://stackoverflow.com/questions/9118793/spring-security-custom-sessionmanagementfilter-same-order-value-error by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 부트에서 Generic JPA Repository를 구현하는 방법 - 어떤 엔티티 / 클래스 유형에 대해 Spring 서비스로 자동 변환 될 수 있는가? (0) | 2019.04.11 |
---|---|
[SPRING] java.lang.IllegalArgumentException Spring 4 & Hibernate 4에서 "DAO 필드를 설정할 수 없습니다" (0) | 2019.04.11 |
[SPRING] 무국적 스프링 MVC (0) | 2019.04.11 |
[SPRING] Freemarker 템플릿에 Spring MVC 유효성 검사 오류 표시 (0) | 2019.04.11 |
[SPRING] Struts 2와 Spring 스트럿츠 생성 객체 처리 방법 (0) | 2019.04.11 |