Spring Security CSRF XML 설정
spring에서 csrf를 설정하는 방법은 java와 xml 설정 두 가지가 있는데 그 중 xml로 설정하는 방법
sec:http 에 <sec:csrf request-matcher-ref="" /> 를 설정한다.
AndRequestMattcher 를 이용하여 제외할 url을 패턴을 설정한다.
<sec:http>
<intercept-url pattern="" access="" />
<form-login ...
<sec:csrf request-matcher-ref="csrfMatcher" />
</sec:http>
<beans:bean id="csrfMatcher" class="org.springframework.security.web.util.matcher.AndRequestMatcher">
<beans:constructor-arg name="requestMatchers">
<beans:list>
<beans:bean class="org.springframework.security.web.csrf.CsrfFilter$DefaultRequiresCsrfMatcher" />
<beans:bean class="org.springframework.security.web.util.matcher.NegatedRequestMatcher">
<beans:constructor-arg>
<beans:bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
<beans:constructor-arg value="/login/**" />
</beans:bean>
</beans:constructor-arg>
</beans:bean>
<beans:bean class="org.springframework.security.web.util.matcher.NegatedRequestMatcher">
<beans:constructor-arg>
<beans:bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher">
<beans:constructor-arg value="/common/**" />
</beans:bean>
</beans:constructor-arg>
</beans:bean>
</beans:list>
</beans:constructor-arg>
</beans:bean>
jsp 화면에서 form 태그 안에 input hidden 을 만들고 csrf 토큰 값을 받을 수 있도록 name과 value에 아래와 같이 작성한다.
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
'Spring' 카테고리의 다른 글
Spring 파일 업로드 allowCasualMultipartParsing 설정방법(Tomcat, Spring) (0) | 2023.03.26 |
---|---|
Spring Eclipse lombok.jar 설치방법 @Data @Getter @Setter (0) | 2023.02.06 |
IntelliJ + Spring Boot 스프링 부트 + JPA 프로젝트 생성 (0) | 2020.05.07 |