Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全默认登录表单无法加载CSS文件(错误\u连接\u超时\u)_Java_Css_Spring Boot_Spring Security_Login - Fatal编程技术网

Java Spring安全默认登录表单无法加载CSS文件(错误\u连接\u超时\u)

Java Spring安全默认登录表单无法加载CSS文件(错误\u连接\u超时\u),java,css,spring-boot,spring-security,login,Java,Css,Spring Boot,Spring Security,Login,看起来SpringSecurity的默认登录页面使用bootstrap.min.css和signin.css来设置自己的样式。从Eclipse运行项目时,登录页面显示正确,但从SpringBoot胖jar运行时,登录页面显示不正确。错误是: Failed to load resource: net::ERR_CONNECTION_TIMED_OUT bootstrap.min.css Failed to load resource: net::ERR_CONNECTION_TIMED_OUT s

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

Failed to load resource: net::ERR_CONNECTION_TIMED_OUT bootstrap.min.css
Failed to load resource: net::ERR_CONNECTION_TIMED_OUT signin.css
这些文件由SpringSecurity管理,我甚至不知道它们存储在哪里。正如我所说,当从Eclipse运行时,登录页面可以完美地工作,而应用程序的其余部分在这两种环境中都可以完美地工作(thymeleaf模板使用带Spring MVC后端控制器的引导,由Spring Security保护)


是什么导致了这些错误?

您是否对要服务的静态资源使用了匹配器

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

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

http
   .authorizeRequests()
   .antMatchers("/webjars/**").permitAll();
您甚至想保护使用登录限制服务这些资源吗?目的何在

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

虽然这对你们中那些已经被遗忘的人来说可能不是一个新的启示 自SpringOne发布以来,在SpringBoot之后,有一个 您可能不知道的细节。弹簧启动将自动启动 添加位于以下任意位置的静态web资源 目录:

/META-INF/resources/
/resources/
/static/
/public/
如果将这些文件添加到项目结构的其中一个defaut位置,则无需向它们授权请求

请参阅此以了解更多详细信息

NB:当使用spring的默认页面时,您不能拥有独立的环境,并且必须对laod资源进行internet访问。你必须实现你的定制


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

您是否授权了对这些元素的请求?您使用的是什么版本的spring安全?您是否使用任何防火墙,不允许您从internet下载文件?事实上,我部署的环境无法访问internet。有没有办法让SpringSecurity在本地加载这些样式表?这些文件不在我的控制之下,它们似乎以某种方式包含在SpringSecurity中。因此,我不能授权他们提出请求。另外,我在从Eclipse运行时没有这个问题,只有在运行jar时才有。因此,当我从Eclipse运行项目时,一切正常,登录页面有样式,并且不需要30秒就可以重新加载。当我在生产环境中部署构建过程产生的jar文件并从批处理文件(java-jar)运行它时,我遇到了这个问题,它抱怨说它找不到我以前从未见过的CSS文件。这些不是我的CSS文件,它们以某种方式与Spring Security捆绑在一起,因此我无法明确授权它们,因为它们实际上没有位置。jar依赖项与我从IDE运行它时的依赖项相同。在我的视图中,我确实使用了引导,但它们工作得非常好。SpringSecurity的默认登录页面似乎指向bootstrap.min.css和signin.css,它以某种方式提供了它们自己,而这在从jar运行时是不起作用的。登录页面的工作原理与功能相同,但它以非样式HTML显示,加载需要30秒。老实说,我不认为我的项目结构在这里有什么不同。我的问题归结为:如何让SpringSecurity使用本地CSS文件而不是在线CSS文件?我已经把两个文件放在我的静态文件夹中抱怨,它仍然在我的登机机上在因特网上寻找它们。我希望还有另外一种方式,我有点像默认登录页面的简单化外观,但是我开始考虑自己制作并完全避免这个问题。
    http
       .formLogin()
       .loginPage("/login")
       .permitAll();