[ERROR] signup:1 Refused to execute script from 'http://localhost:8080/login' because its MIME type ('text/html') is not executable

charco·2021년 5월 30일
0

!ERROR!

목록 보기
6/17
post-custom-banner

스프링 시큐리티로 회원가입과 로그인을 구현하는 중
브라우저에서 다음과 같은 에러가 발생했다.

signup:1 Refused to execute script from 'http://localhost:8080/login' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

에러 메시지의 저 경로는 스프링 시큐리티에서 기본으로 제공하는 로그인 페이지다. 인증되지 않은 사용자가 인증된 사용자에게만 접근 허용된
자원에 접근하려고 하면 이 페이지로 redirect된다.

문제는 static 디렉토리의 자원들이었다.
회원가입 페이지가 동적 자원인 js파일을 로드해야 하는데
시큐리티에 static 경로의 자원들에 대한
접근 설정이 제대로 되어 있지 않았던 것 같다.

그런데 WebSecurityConfigurerAdapter 의 구현체에는 아무런 문제가 없어 보인다..

SecurityConfig 의 설정을 모든 자원에 누구나 접근이 가능하도록
설정하고 테스트를 해보니 아예 js파일을 로드하지 못하고 있었다.
그래서 다음과 같이 클래스패스를 직접 설정해주니 js파일을 로드하는것은
해결했다.

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        super.addResourceHandlers(registry);
    }
}

시큐리티 설정을 다시 되돌려놓고 접근해보니 해결됐다.

profile
아직 배우는 중입니다
post-custom-banner

0개의 댓글