美文网首页
SpringSecurity-静态资源的访问

SpringSecurity-静态资源的访问

作者: 矢量演说 | 来源:发表于2020-05-13 23:32 被阅读0次
  • Spring Security把我的静态资源都拦截了

参考了一些世纪美文:
这篇文章我看得很早但没有照做,我恨
Spring Security 静态资源访问
spring security访问静态资源文件出现404

http.authorizeRequests()
                //允许所有用户访问"/","/jquery/**","/semantic/**","/css/**","/js/**","/images/**"
                .antMatchers("/",
                        "/jquery/**",
                        "/semantic/**",
                        "/css/**",
                        "/js/**",
                        "/images/**",
                        "/fonts/**",
                        "/**/favicon.ico",
                        "/**").permitAll()
                //其他请求需要登录认证
                .anyRequest().authenticated()

如果不加上这段代码访问静态文件都成302,访问静态文件全都跳转到login去了。
但新的问题是加上这段代码后访问静态文件又变成404了,检查了几十遍路径没有错,然后在static文件夹下随便新建了一个txt文件去访问,也是404,最后解决办法看下面代码
作者:鑫鑫哥哥丨
链接:https://www.jianshu.com/p/c698667ee9a0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/login").setViewName("login");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

需要在后面重新映射一下静态资源路径,自己觉得原因可能是Spring Boot默认的静态资源路径不知道被我怎么搞的失效了,怀疑和Spring Security有关,
而且在html文件中的引用方式也要改变,看代码
作者:鑫鑫哥哥丨
链接:https://www.jianshu.com/p/c698667ee9a0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

<link rel="stylesheet" type="text/css" th:href="@{/static/semantic/dist/semantic.min.css}">
    <script type="text/javascript" th:src="@{/static/js/jquery.min.js}"></script>
    <script type="text/javascript" th:src="@{/static/semantic/dist/semantic.min.js}"></script>

一旦改了CSS和js的引入,就需要重启IDEA才能生效。下面这篇文章也详细地讲解了上面那些设置的原理。
(简单详细解决)SpringBoot 前台页面get不到js,css文件 net::ERR_ABORTED 404

在springboot自身带有的那个(项目名+Application)类中继承WebMvcConfigurationSupport重写里面的addResourceHandlers方法
在这里可以理解为配置在项目启动时扫描static下面的所有文件,也就是告诉springboot在启动的时候带上他们全部一起跑。
最强解决方案,js,css文件导入项目后先重新启动软件,
保证编码格式正确js引入加入type=“text/javascript”
css引入加入rel=“stylesheet”
重启idea软件
每次导入新的css和js都要重新启动。
————————————————
版权声明:本文为CSDN博主「一个有梦想的咸鱼。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YiQieFuCong/article/details/85009401

接下来这些并没有帮助,但还是存一下
在static下新建一个文件夹,然后在上述方法中指定跳过拦截的文件路径
这个的写法很有意思,根据文件类型进行过滤(虽然没效果)
Springsecurity引入静态资源 css,js,图片被屏蔽等问题解决办法

public void configure(WebSecurity web) throws Exception {
    // 忽略URL
    web.ignoring().antMatchers("/**/*.js", "/lang/*.json", "/**/*.css", "/**/*.js", "/**/*.map", "/**/*.html",
            "/**/*.png");
}
  • 我的程序总是说我少这个静态资源

然而加了也没什么效果……姑且放一下下载链接
blueimp-md5下载

  • /static/treetable-lay/treetable.css找不到

可我明明引入了啊……尚未解决

  • 版本问题(没有用到)

看b站教程的时候看到这条弹幕,但其实没有用到,而且为什么thymeleaf和springsecurity有关系啊。
“特意回来告诉大家,高版本的springboot需要使用thymeleaf-extras-springsecurity5”

<dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
 </dependency>

相关文章

网友评论

      本文标题:SpringSecurity-静态资源的访问

      本文链接:https://www.haomeiwen.com/subject/anuanhtx.html