정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !!
사용자 정의 보안 기능 구현
- 한 개 이상의 SecurityFilterChain 타입 빈을 정의
- 인증 API 및 인가 API 설정
1. SecurityConfig class 생성
- @EnableWebSecurity 어노테이션 필수 선언
2. SecurityFilterChain 빈으로 정의
3. HttpSecurity 의존성 주입 받기
4. 주입 받은 HttpSecurity를 통해 인증 API와 인가 API 설정
인증 API)
- http.formLogin()
- http.logout()
- http.csrf()
- http.httpBasic()
- http.SessionManagement()
- http.RememberMe()
- http.ExceptionHandling()
- http.addFilter()
인가 API)
- http.authorizeHttpRequests(auth -> auth.
.requestMatchers(/admin)
.hasRole(USER)
.permitAll()
.authenticated()
.fullyAuthentication()
.access(hasRole(USER))
.denyAll()) - Spring Security 7 이상부터는 람다식만 지원하므로 람다로 작성하기 !
- 클래스에 반드시 @EnableWebSecurity 정의
- 모든 설정 코드는 람다 형식으로 작성
- 사용자 정의로 SecurityFilterChain을 빈으로 등록하면 자동설정에 의한 빈은 생성되지 않음
- http.authorizeHttpRequests(auth -> auth.anyRequest().authenticated()) ≫ 모든 요청에 대해 인증을 받아야 함
- .formLogin(Customer.withDefaults()) ≫ 인증 방식 폼로그인 지원, default 방식
사용자 추가 설정
1. application.properties / application.yml 파일에 설정
2. SecurityConfig 설정 클래스에 직접 정의
- 여러 사용자 정의 가능
- password 지정 시 {noop}~~
- 폼로그인 시 정의된 사용자 정보로 입력하여 인증받음
- 사용자 설정 없을 때 기본으로 제공되던 password는 제공되지 않음
'spring security' 카테고리의 다른 글
폼 인증 필터 - UsernamePasswordAuthenticationFilter (0) | 2025.01.19 |
---|---|
폼 인증 - formLogin() (0) | 2025.01.19 |
DelegatingFilterProxy / FilterChainProxy (0) | 2025.01.13 |
WebSecurity / HttpSecurity (0) | 2025.01.13 |
SecurityBuilder / SecurityConfigurer (0) | 2025.01.13 |