Spring security默认登录表单无法加载CSS文件(ERR_CONNECTION_TIMED_OUT)

马丁

看起来 Spring Security 的默认登录页面使用 bootstrap.min.css 和 signin.css 来设置自己的样式。从 Eclipse 运行项目时登录页面显示正确,但从 Spring Boot fat jar 运行时不显示。错误是:

Failed to load resource: net::ERR_CONNECTION_TIMED_OUT bootstrap.min.css
Failed to load resource: net::ERR_CONNECTION_TIMED_OUT signin.css

这些文件由 Spring Security 管理,我什至不知道它们存储在哪里。就像我说的,当从 Eclipse 运行时,登录页面可以完美运行,而应用程序的其余部分在两种环境中都可以完美运行(thymeleaf 模板使用引导程序和 Spring MVC 后端控制器,由 Spring Security 保护)。

什么可能导致这些错误?

哈萨姆·阿卜杜利拉

您是否对要提供的静态资源使用了匹配器?

如果本地资源位于默认位置以外的其他位置(不推荐)

http
   .authorizeRequests()
   .antMatchers("/lib/bootstrap/**",
                "/css/**",
                "/img/**",
                "/js/**").permitAll();

如果是 webjars

http
   .authorizeRequests()
   .antMatchers("/webjars/**").permitAll();

您是否甚至想通过登录限制来保护这些资源的服务?出于什么目的?

对于默认已知目录中的静态资源:

虽然对于自 SpringOne 发布以来一直关注 Spring Boot 的人来说,这可能不是一个新的启示,但有一个细节您可能不知道。Spring Boot 将自动添加位于以下任何目录中的静态 Web 资源:

/META-INF/resources/
/resources/
/static/
/public/

如果您将这些文件添加到项目结构的这些默认位置之一,则无需授权对它们的请求。

有关更多详细信息,请参阅此文章

注意:使用 spring 的默认页面时,您不能拥有独立环境,并且必须访问 Internet 才能加载资源。您必须实现您的自定义登录页面

    http
       .formLogin()
       .loginPage("/login")
       .permitAll();

如果需要,不要忘记链接您的弹簧安全规则

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章