public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests((authorizeRequests) -> // 3. 인증, 인가 설정
authorizeRequests
.requestMatchers("/login", "/signup", "/user").permitAll() // login, signup, user는 인증 없이 접근 가능
.anyRequest().authenticated() // 다른 요청들은 인증 요구
)
Spring Security를 사용해 로그인 화면을 구성한 후, 로그인 화면 css가 적용되지 않는 오류가 발생하였다.
원인은 Spring Security는 기본적으로 모든 요청을 보호하기 때문에 즉, 기본 설정에서는 모든 경로에 대해 인증을 요구하기 때문에 css나 js 와 같은 정적 리소스 파일도 인증을 거쳐야 한다. 따라서 별도의 접근을 허용해야 한다고 한다.
결론적으로 정적 리소스에 대한 접근을 허용하기 위해 .requestMatchers("/css/**", "/js/**", "/images/**", "/static/**").permitAll() 을 추가하니 css 파일이 정상적으로 적용되었다 !
이것은 참고로 css 파일이 src/main/resources/static/css/에 위치해 있을 때 기준으로, 다른 폴더에 있다면 그 상위 폴더명을 넣어주면 된다.
'개발 | 프로젝트 > Java | Spring' 카테고리의 다른 글
[Spring boot] @Transactional 이란? (0) | 2025.04.08 |
---|---|
[Spring Boot] GlobalExceptionHandler 예외 처리 (0) | 2025.04.06 |
[Spring Security] UsernamePasswordAuthenticationFilter Authentication Flow (0) | 2025.03.21 |
[Spring] Spring Security (0) | 2025.02.26 |
[Spring] 개방-폐쇄 원칙 (OCP, Open Closed Principle) (0) | 2025.02.18 |