springboot配置spring security 静态资源不能访问

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33151213/article/details/89931819

在springboot中集成spring security时,遇到了一个坑,搞了好久有点难受。。。

我这里用的springboot2.x版本的。

首先是security的配置:写了一个类WebSecurityConfig继承WebSecurityConfigurerAdapter,这个类是我们在配置security的时候,对我们请求的url及权限规则的一些认证配置。具体的不说了,这里主要是静态资源的问题。

在这个类中我们会重写一些方法,其中就有一个方法,可以为我们配置一下静态资源不需要认证。

@Override
    public void configure(WebSecurity web) throws Exception {
        //配置静态文件不需要认证
        web.ignoring().antMatchers("/static/**");
    }

页面的引用如下:

 <link rel="stylesheet" th:href="@{static/layui/css/layui.css}">

之后我们启动项目:看到css并没有生效
在这里插入图片描述

这时候仅仅通过spring security配置是不够的,我们还需要去重写addResourceHandlers方法去映射下静态资源,这个方法应该很熟悉了,我们通过springboot添加拦截器的时候就会用到这个。

写一个类WebMvcConfig继承WebMvcConfigurationSupport,注意spring boot2版本和1版本是不一样的,spring boot1版本继承的
WebMvcConfigurerAdapter在spring boot2版本中已经提示过时了


@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

    /**
     * 配置静态资源
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        super.addResourceHandlers(registry);
    }
}

现在重新启动项目:css文件已经引用成功。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_33151213/article/details/89931819