반응형
Spring Framework설정
gradle
dependencies {
// ...
// security
implementation 'org.springframework.security:spring-security-web:5.0.7.RELEASE'
implementation 'org.springframework.security:spring-security-config:5.0.7.RELEASE'
implementation 'org.springframework.security:spring-security-core:5.0.7.RELEASE'
implementation 'org.springframework.security:spring-security-taglibs:5.0.7.RELEASE'
}
- spring-security-web: Spring Security의 웹 지원 기능을 포함한 의존성입니다. 웹 애플리케이션에서 보안 관련 기능을 구현하는 데 사용됩니다.
- spring-security-config: Spring Security의 구성 요소를 포함한 의존성입니다. Spring Security의 구성 클래스들을 사용하여 보안 구성을 정의하고 사용자 인증, 인가, 로그인 페이지 등을 구성할 수 있습니다.
- spring-security-core: Spring Security의 핵심 기능을 포함한 의존성입니다. 인증, 인가, 보안 컨텍스트 등 Spring Security의 핵심적인 기능을 제공합니다.
- spring-security-taglibs: Spring Security 태그 라이브러리를 포함한 의존성입니다. 이 라이브러리는 JSP 또는 Thymeleaf와 같은 템플릿 엔진에서 Spring Security 태그를 사용하여 보안 관련 태그를 쉽게 작성할 수 있도록 도와줍니다.
web.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>
...
<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>
- Spring Security 필터를 적용하기 위해 `web.xml` 파일에 `DelegatingFilterProxy` 필터 적용
- security-context.xml 파일 로딩 위해 추가
security-context.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
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">
<!-- 보안 설정 구성 -->
<http>
<!-- URL 패턴에 대한 접근 권한 설정 -->
<intercept-url pattern="/admin/**" access="hasRole('ADMIN')"/>
<intercept-url pattern="/user/**" access="hasRole('USER')"/>
<!-- 로그인 페이지 설정 -->
<form-login login-page="/login" default-target-url="/home" authentication-failure-url="/login?error=true"/>
<!-- 로그아웃 설정 -->
<logout logout-url="/logout" logout-success-url="/login?logout=true"/>
</http>
<!-- 사용자 인증 설정 -->
<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
<user name="user" password="user" authorities="ROLE_USER"/>
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
스프링 시큐리티는 단독으로 설정할 수 있기 때문에, root-context.xml이나 servlet-context.xml과 별도로 작성이 가능합니다. 관리를 용이하게 하기 위해 따로 설정해주는 것이 좋습니다.
스프링 시큐리티가 동작하기 위해서는 최소한의 설정이 필요하다.
- Authentication Manager 존재
- 스프링 시작 지점이 필요하다.
Spring Boot 설정
implementation 'org.springframework.boot:spring-boot-starter-security'
반응형
'Spring Security' 카테고리의 다른 글
WebSecurityConfigurerAdapter Deprecated (0) | 2022.10.14 |
---|---|
Spring Security 프로젝트 시작 (0) | 2022.10.14 |
Spring Security @PreAuthorize, @PostAuthorize, @Secured (0) | 2022.10.02 |
Spring Security Session을 이용한 구현 예제 (0) | 2022.09.29 |
Spring Security 스프링 시큐리티 이해하기 (0) | 2022.09.29 |