반응형
개발꿀팁
Spring Security
1. Spring Security란?
Spring 기반의 어플리케이션의 인증과 권한, 인가 등 보안을 담당하는 스프링 하위에 있는 프레임워크이다.
Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주어 개발자는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점을 제공한다.
Spring security는 Filter 기반으로 동작하기 때문에 Spring MVC 와 분리되어 관리 및 동작한다.
1-1. 인증(Authorizatoin)과 인가(Authentication)
- 인증 (Authentication): 사용자 신원을 확인하는 행위
- 회사 출입을 위한 출입증 확인 혹은 생체정보 (지문, 홍채) 인식
- 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용)
- 인가 (Authorization): 사용자 권한을 확인하는 행위
- 주로 역할에 따른 사용 권한 관리
- 예시 : 회사 건물 내 접근 권한 관리
- 방문자 → 회의실만 접근 가능
- 직원 → 회의실, 사무실 접근 가능
- 관리자 → 회의실, 사무실, 서버실, 물품보관실 접근 가능
2. Spring Security 설정
2-1. 의존성 추가
// 스프링 시큐리티
implementation 'org.springframework.boot:spring-boot-starter-security'
2-2. WebSecurityConfig 구성
WebSecurityConfig
- @EnableWebSecurity : 웹보안을 활성화
- 기능 설정을 위해 WebSecurityConfigurer를 Implements하는 방법과 WebSecurityConfigurerAdapter를 extends하는 방법이 있음. 여기서는 후자를 선택
@Configuration
@EnableWebSecurity // 스프링 Security 지원을 가능하게 함
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
//HttpServletRequest를 사용하는 요청들에 대한 접근제한을 설정
.authorizeRequests()
// "/api/hello"에 대한 요청은 인증없이 접근 허용
.antMatchers("/api/hello").permitAll()
// 그 외 어떤 요청이든 '인증'필요
.anyRequest().authenticated()
}
반응형
'개발 하나둘셋 > Java & Spring' 카테고리의 다른 글
OOP의 상속 / Implements와 Extends (0) | 2021.12.17 |
---|---|
Spring Boot에서 CORS 방법 (0) | 2021.12.13 |
Spring Boot JWT 기본개념과 특징 (0) | 2021.12.10 |
Spring boot에서 AWS S3 파일 업로드 하기 (0) | 2021.12.08 |
[java] 메서드, 파라미터 이해하기 (0) | 2021.12.03 |