Web DEV/JAVA

egovframework csrf 로그인 없이 적용

황금니 2023. 10. 11. 09:12

pom.xml 추가

<dependency>
    <groupId>org.egovframe.rte</groupId>
    <artifactId>org.egovframe.rte.fdl.security</artifactId>
    <version>${org.egovframe.rte.version}</version>
    <exclusions>
        <exclusion>
            <artifactId>spring-jdbc</artifactId>
            <groupId>org.springframework</groupId>
        </exclusion>
    </exclusions>
</dependency>

web.xml 추가

<!-- security start -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<!-- security end -->

context-security.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"
	xmlns:egov-security="http://maven.egovframe.go.kr/schema/egov-security"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
		http://maven.egovframe.go.kr/schema/egov-security http://maven.egovframe.go.kr/schema/egov-security/egov-security-4.1.0.xsd">

	<security:authentication-manager alias="authenticationManager" /> 

	<security:http pattern="/css/**" security="none"/>
	<security:http pattern="/html/**" security="none"/>
    <security:http pattern="/images/**" security="none"/>
 	<security:http pattern="/js/**" security="none"/>
 	<security:http pattern="/resource/**" security="none"/>
 	
 	<security:http use-expressions="true">	
 		<security:form-login  />
		<security:csrf disabled="false" />
	</security:http>
</beans>

View - JSP 에서 form 태그내에 추가

<form>
 <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>

최종  <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /> 가 자동으로 변환 되었는지 확인!