Spring Security를 적용하고 정적 자원들이 적용되지 않는 문제가 발생하였다..!
(사라져버린 이미지와 css...)
콘솔에는 다음과 같은 에러가 떠있었다
Refused to apply style from 'http://localhost:8080/' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Spring Security가 정적자원에 대해서 인증을 하지 않도록 설정하면 된다.
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}
또는
(...)
.and()
.authorizeHttpRequests()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
permitAll()을 해줘도 되지만 ignore()는 필터를 거치지 않고 permitAll()은 필터를 거치기 때문에 위 방법이 더 효율적이라고 한다.
PathRequest.toStaticResources().atCommonLocations()
로 경로설정을 해주면 static폴더가 전부 해당되는 줄 알았는데..
이미지는 뜨지 않았다.
atCommonLocations() 는 StaticResourceLocation
을 반환하는데
enum의 경로들은 이러하다.
나는 이미지 경로를 /img/**
로 만들어뒀기 때문에 /images/**
로 바꿔주니 이미지도 잘 보였다.
(다시 돌아온 화면)
개발자로서 배울 점이 많은 글이었습니다. 감사합니다.