[Spring Security] 정적 자원 ignore하기

울상냥·2023년 8월 8일
1

SpringSecurity

목록 보기
2/2
post-custom-banner

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.


ignore()

Spring Security가 정적자원에 대해서 인증을 하지 않도록 설정하면 된다.

@Bean
    public WebSecurityCustomizer webSecurityCustomizer() {
        return (web) -> web.ignoring()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations());
    }

또는


	(...)
    .and()
    .authorizeHttpRequests()
    .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()

permitAll()을 해줘도 되지만 ignore()는 필터를 거치지 않고 permitAll()은 필터를 거치기 때문에 위 방법이 더 효율적이라고 한다.

images

PathRequest.toStaticResources().atCommonLocations() 로 경로설정을 해주면 static폴더가 전부 해당되는 줄 알았는데..
이미지는 뜨지 않았다.

atCommonLocations() 는 StaticResourceLocation을 반환하는데

enum의 경로들은 이러하다.
나는 이미지 경로를 /img/** 로 만들어뒀기 때문에 /images/** 로 바꿔주니 이미지도 잘 보였다.



(다시 돌아온 화면)

profile
안되면 되게하라
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 8월 8일

개발자로서 배울 점이 많은 글이었습니다. 감사합니다.

답글 달기
comment-user-thumbnail
2023년 8월 16일

테스트

답글 달기