MIME type ('text/html') is not executable

장서연·2022년 2월 11일
0

아래는 시큐리티를 위해 만든 config/SecurityConfig.java 파일이다.

@Configuration // 빈등록 (IOC관리)
@EnableWebSecurity // 시큐리티 칠터가 등록이 된다
@EnableGlobalMethodSecurity(prePostEnabled = true) // 특정 주소로 접근하면 권한 및 인증을 미리 체크하겠다는 뜻
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                    .antMatchers("/auth/**")
                    .permitAll()

                    .anyRequest()
                    .authenticated()
                .and()
                .formLogin()
                .loginPage("/auth/loginForm");
    }

}

이 설정을 해준 뒤에 auth/loginFormauth/joinForm 에 대한 페이지 요청을 하여 폼 페이지 화면(html)은 잘 응답받았지만, 폼 데이터를 넘겨 처리하게 할 자바스크립트 파일이 다운은 되었지만 실행이 불가하다(not executable)는 응답을 받았다.

이를 해결하기 위해 위 설정 클래스 파일에 아래와 같은 함수를 추가로 오버로딩 해주었다.

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/js/**");
    }

js 폴더 아래의 파일들은 시큐리티 제약에서 빼주겠다는 소리

이렇게 함수를 오버라이딩한 결과 js 스크립트를 잘 실행하였다.

느낀점

not executable 하다는 말이 떠서 에러 메시지 그대로 타입이type ('text/html') 이라 실행을 못시키는건가 싶었다. 그래서 스크립트에 타입을 따로 이 좀 신기했다. 왜냐하면 아예 js 다운로드도 못하게 막아놓았으면 막아놓았지 다운은 시켜놓고 여기서 실행을 못하게 한다는 것이 시큐리티 때문이라는...🤔

결론

어쨌든, 위처럼 /js 폴더 하위의 파일들을 시큐리티 설정에서 ignoring 시킴으로써 js 파일들을 시큐리티에서 건져내어 실행시킬 수 있게 하였다!

0개의 댓글