我有一个问题应用css到网页,使用spring安全(3.0.7版本)。我有以下配置:
<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"是登录表单。
- " administration "one_answers"barco"目录包含只有经过认证的用户才能访问的页面。
- "catalogo"目录包含每个人都应该访问的页面。
- "error"目录包含应用程序的错误页面。
- "plantillas"目录包含app(我使用JSF2).
"resources"目录包含图片、css文件和javascript。因此,在第一行中,我告诉spring security不要对它使用安全过滤器。
然而,在这种配置下,当我运行应用程序时,css样式不会应用到页面上!!
我已经检查了,如果我把默认授权"permitAll",它的工作原理。但是我不想那样做,因为这不是一个好的习惯。
知道为什么不工作吗?
如果您要添加内联样式表,则此方法有效。例如:
<link type="text/css" rel="stylesheet" href="/resources/style.css" />
如果使用
<h:outputStylesheet>
标签,url模式应该像这样
<intercept-url pattern="/faces/javax.faces.resource/**" filters="none"/>