Spring Security CSS样式无法生效。

4

我在使用Spring Security(3.0.7版本)时,遇到了应用CSS到网页的问题。我的配置如下:

<http auto-config="true" use-expressions="true">
<intercept-url pattern="/faces/resources/**" filters="none"/>
<intercept-url pattern="/faces/inicio.xhtml" access="permitAll"/>
<intercept-url pattern="/faces/paginas/autenticacion/login.xhtml*" access="permitAll"/>
<intercept-url pattern="/faces/paginas/administracion/**" access="isAuthenticated()"/>
<intercept-url pattern="/faces/paginas/barco/**" access="isAuthenticated()"/>
<intercept-url pattern="/faces/paginas/catalogo/**" access="permitAll"/>
<intercept-url pattern="/faces/paginas/error/**" access="permitAll"/>
<intercept-url pattern="/faces/paginas/plantillas/**" access="permitAll"/>
<intercept-url pattern="/**" access="denyAll" />

默认情况下,我拒绝访问整个页面。然后,我将授权应用于具体页面,指定它们的URL模式,并按给定顺序首先应用,其中denyAll规则是最后一个。
  • "inicio.xhtml"是主页。
  • "login.xhtml"是登录表单。
  • "administracion"和"barco"目录包含只能由经过身份验证的用户访问的页面。
  • "catalogo"目录包含任何人都可以访问的页面。
  • "error"目录包含应用程序的错误页面。
  • "plantillas"目录包含应用程序的模板面部页面(我使用JSF2)。

"resources"目录包含图像、CSS文件和JavaScript。因此,在第一行中,我告诉Spring Security不要为其使用安全过滤器。

然而,使用这种配置时,运行应用程序时,CSS样式不会应用于页面!!

我已经检查过,如果将默认授权更改为"permitAll",它可以正常工作。但我不想这样做,因为这不是一个好的实践。

有什么想法为什么不起作用吗?我认为它应该起作用。

1个回答

4

如果您正在内联添加样式表,则此方法有效。例如:

<link type="text/css" rel="stylesheet" href="/resources/style.css" />

如果您正在使用
<h:outputStylesheet> 

标签,URL模式应该像这样。
<intercept-url pattern="/faces/javax.faces.resource/**" filters="none"/>

非常感谢@Ravi,我添加了'<intercept-url pattern="/faces/javax.faces.resource/**" filters="none"/>',CSS现在可以正常工作了。虽然让网站图标(favicon)正常工作花费了我很多时间,但最终我通过在页面中添加'<link rel="shortcut icon" href="#{request.contextPath}/favicon.ico" type="image/x-icon" />'并添加规则'<intercept-url pattern="/favicon.ico" filters="none"/>'解决了这个问题。 - choquero70
只需创建resources/images文件夹并将favicon.ico放入其中,然后在xhtml中使用以下代码<link rel="shortcut icon" href="#{resource['images:favicon.ico']}" type="image/x-icon" />即可。这样做无需为图标创建单独的intercept-url(javax.faces.resource会自动处理)。 - Ravi Kadaboina

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接