@EnableWebSecurity 公共类WebSecurityConfig实现WebMvcConfigurer {
@Bean
public UserDetailsService userDetailsService() throws Exception {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withDefaultPasswordEncoder().username("user").password("user").roles("USER").build());
return manager;
}
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().antMatchers("/css/**").permitAll()
.anyRequest().authenticated();
}
}
以上代码不起作用,URL:localhost:8080 / css / styles.css重定向到登录页面。 代码布局为src / main / resources / static文件夹,其中包含html,css和js文件夹。
先谢谢了。
答案 0 :(得分:3)
我认为 addResourceHandlers 方法可以为您提供帮助。
public class WebSecurityConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
这意味着在您的静态文件夹中找到您的资源。
答案 1 :(得分:2)
不确定这是否行得通,但是当前在我的项目中,这是我的配置。并且工作正常。
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers(HttpMethod.GET, "/js/**", "/css/*", "/images/**")
.permitAll()
.anyRequest()
.authenticated();
}