본문 바로가기
Spring/Spring 기초

Spring 시큐리티 환경설정

by 미눅스[멘토] 2023. 8. 11.
728x90

검색

 

첫번째꺼 클릭

 

검증된 5.0.7버전 사용할거

클릭

 

 

 

복사

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

 

pom-xml에 붙임

 

 

또다시 검색

역시 첫번째꺼 클릭

 

 

5.0.7버전 (검증된버전이라 ) 이거 클릭해서 복사

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

 

 

 

또다시 검색

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

 

 

 

 

 

또 검색

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-taglibs -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>5.0.7.RELEASE</version>
</dependency>

 

 

 

여기까지 하고

 

Maven build실행

 

SUCCESS 확인

 

 

그리고 web xml로 감

org.springframework.web.filter.DelegatingFilterProxy

맨위에 코드 이걸로 수정

	<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
	<!-- 
	context-param : 기본 설정 파일 외에 개발자가 직접 제어하는 XML 파일을 지정할 수 있음
	root-context.xml : 모든 서블릿과 필터에서 사용되는 루트 스프링 컨테이너
			(applicationContext, Ioc컨테이너) 설정
	security-context.xml : 스프링 시큐리티 설정
	-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml
		/WEB-INF/spring/security-context.xml
		</param-value>
	</context-param>
	
	<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

 

이것도 밑에 붙여넣음

	<!-- 스프링시큐리티가 제공하는 서블릿 필터 클래스를 서블릿 컨테이너에 등록 시작 -->
   <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>
   <!-- 스프링시큐리티가 제공하는 서블릿 필터 클래스를 서블릿 컨테이너에 등록 끝 -->

 

 

위에  /WEB-INF/spring/security-context.xml 경로에 맞는 파일 생성해준다

 

그파일에 코드 작성

 

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/security http://www.springframework.org/schema/security/spring-security.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--  xmlns:security : 스프링 시큐리티가 제공하는 XML 네임 스페이스를 활성화 -->
      
</beans>

 

 

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/security http://www.springframework.org/schema/security/spring-security.xsd
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--  xmlns:security : 스프링 시큐리티가 제공하는 XML 네임 스페이스를 활성화 -->
      
   
	<!-- 폼 기반 인증 기능 사용 --> 
	<security:http>
		<!-- 폼 기반 인증 기능 사용 -->
		<security:form-login/>
	</security:http>
    
    <!-- 
    authentication : 인증(로그인)
    authorization  : 인가(로그인 후에 권한)
     --> 
    <security:authentication-manager>
    
    </security:authentication-manager>
</beans>

 

 

 

 

 


시큐리티 처리를 위한 총 이렇게 4개  의존관계 주입 코드 가 필요함

이거만 복사해서 pom-xml에 붙여넣기 하면됨

		<!-- 스프링 시큐리티 라이브러리 의존관계 정의 시작 -->
		<!-- 스프링 시큐리티를 웹이서 동작하도록 해줌 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-web</artifactId>
		    <version>5.0.7.RELEASE</version>
		</dependency>
		
		
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-config</artifactId>
		    <version>5.0.7.RELEASE</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-core</artifactId>
		    <version>5.0.7.RELEASE</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-taglibs -->
		<dependency>
		    <groupId>org.springframework.security</groupId>
		    <artifactId>spring-security-taglibs</artifactId>
		    <version>5.0.7.RELEASE</version>
		</dependency>
		<!-- 스프링 시큐리티 라이브러리 의존관계 정의 끝-->