Предположим, что ваши статические файлы находятся под src/main/resources
:
Есть две основные части для настройки:
РеализацияWebMvcConfigurer
интерфейс для обнаружения ваших статических ресурсов:
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!registry.hasMappingForPattern("/assets/**")) {
registry.addResourceHandler("/assets/**")
.addResourceLocations("/assets/");
}
}
}
Настройте конфигурацию безопасности таким образом, чтобы статические ресурсы (такие как CSS, JavaScripts и изображения) были общедоступными:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
// Your settings
@Override
protected void configure(HttpSecurity http) throws Exception {
// Your AuthN handlers and filter chain...
http
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/css/**").permitAll()
.antMatchers("/img/**").permitAll()
.antMatchers("/js/**").permitAll()
.anyRequest().authenticated();
// Logout handler...
}
}
Предположим, что у вас есть файл CSS следующим образом:
src/main/resources/assets/css/layout.css
Веб-сервер сделает его доступным по адресу:
http://<root_url>:<port>/css/layout.css