우선 Spring Boot 를 사용하는 프로젝트에서
이미지 같은 정적 파일들은 다음의 경로에 저장해서 관리되어야 한다.
/src/main/resources/static
그리고 정적 파일을 서버 구동 중에 추가 했다면,
바로 정적 파일에 접근할 수 없다.
서버 구동 중 추가된 정적 파일에 접근하기 위해서는
서버 종료 후 재실행 해야 한다.
서버 종료 후 재실행 하지 않고 접근해서 사용하기 위한 방법이 있다고 하는데,
나는 아직 해당 방법들로 성공하지 못했다. 🤨
이 부분은 링크만 모아둔 다음에
테스트에 성공하면 정리해야지!
스프링 시큐리티를 사용하는 프로젝트라면,
이미지와 같은 정적파일들에 Ignoring 을 걸어주어야 한다.
스프링 시큐리티는 모든 요청에 대한 권한을 검사한다.
이 때, 이미지 파일 같은 정적 파일들에 대해서도 권한을 검사한다면
엄청난 자원의 낭비가 일어날 수 있다.
그렇기 때문에,
이미지 파일같은 권한 검사가 필요 없는 리소스에 대해서는
권한검사를 하지않는다는 설정을 해주는것이 좋다.
특정 정적 리소스들/favicon.ico
, /files/**
에 대해 권한 검사 미 실시
@EnableWebSecurity
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/favicon.ico", "/files/**");
super.configure(web);
}
}
모든 정적 리소스들 /resource/static/*
에 대해 권한 검사 미 실시
@EnableWebSecurity
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.requestMatchers(
PathRequest
.toStaticResources()
.atCommonLocations()
);
super.configure(web);
}
}