看起来 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] 删除。
我来说两句