
❗ Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 ‘인증’ 과 ‘권한’에 대한 부분을 Filter 흐름에 따라 처리한다. Filter는 가장 먼저 URL 요청을 받는다.
아직 Security 라는 프레임워크를 잘 알지 못해서 FilterChainProxy 에 대해서는 더 자세히 공부하고 벨로그에 쓸 예정..
spring security의 각종 설정은 HttpSecurity로 한다.
- 리소스(URL) 접근 권한 설정
- 인증 전체 흐름에 필요한 Login, Logout 페이지 인증완료 후 페이지 인증 실패시 이동페이지 설정
- 인증 로직을 커스텀하기위한 필터 설정
- 기타 csrf, 강제 https 호출 등등 거의 모든 스프링시큐리티 설정
authorizeRequests()→ authorizeHttpRequests()
- security 처리에 HttpServletRequest를 이용한다는 것을 의미
// 스프링부트 3.1 이전 http.authorizeRequests() // 스프링부트 3.1 이후 http.authorizeHttpRequests((auth) -> auth ...)
antMatchers→ requestMatchers
- 특정 리소스에 대해서 권한을 설정
// 스프링부트 3.1 이전 .antMatchers("/login**","/web-resources/**","/actuator/**") // 스프링부트 3.1 이후 .requestMatchers("/login**","/web-resources/**","/actuator/**")permitAll
- requestMatchers로 설정한 리소스의 접근을 인증절차 없이 허용
.requestMatchers("/login**", "/web-resources/**", "/actuator/**").permitAll()hasAnyRole
- 리소스 ‘admin’ 으로 시작하는 모든 URL은 인증후 ADMIN 레벨의 권한을 가진 사용자만 접근 허용
.requestMatchers("/admin/**").hasAnyRole("ADMIN")hasAuthority(String authority)
- ROLE_USER, ROLE_ADMIN 등 지정한 권한 허용
hasAnyAuthority(String... authorities)
- ROLE_USER, ROLE_ADMIN 등 지정한 권한이 하나라도 있으면 허용
hasIpAddress(String ipaddressExpression)
- 지정한 ip 주소 허용
anonymous()
- 익명 사용자 허용
rememberMe()
- rememberMe 인증 사용자 허용
denyAll()
- 모두 허용 안함
authenticated()
- 인증된 사용자 허용
fullyAuthenticated()
- 인증된 사용자 허용, rememberMe 인증 제외
[Spring Security] 스프링시큐리티 설정값들의 역할과 설정방법(2)
'authorizeRequests()' is deprecated 해결 || Spring Security Configuration
진짜 복 받으세요 사랑합니다