Spring安全性可以用于JSF导航吗?
我的问题与这个现有的SO帖子非常相似:Spring安全性可以用于JSF导航吗?,jsf,spring-security,Jsf,Spring Security,我的问题与这个现有的SO帖子非常相似: Ravi关于每个请求禁用一次并指定转发以“使其工作”的响应与web上的其他地方一致,即: 很久以前: 然而,我就是不能让它工作。拉维的回答表明,我已经完成了两项工作: 1) 在spring的配置中为每个请求放置一次: <http auto-config="true" use-expressions="true" once-per-request="false"> <intercept-url pattern="/partner
Ravi关于每个请求禁用一次并指定转发以“使其工作”的响应与web上的其他地方一致,即:
很久以前:
然而,我就是不能让它工作。拉维的回答表明,我已经完成了两项工作: 1) 在spring的配置中为每个请求放置一次:
<http auto-config="true" use-expressions="true" once-per-request="false">
<intercept-url pattern="/partners/**" access="ROLE_PARTNER" />
.
.
.
</http>
.
.
.
2) 包括转发:
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
springSecurityFilterChain
/*
要求
向前地
在我的例子中,我有一个进入我的应用程序的partners部分的命令链接,它可以工作(但不应该)。这是真的,每个链接后,这第一个和任何搜索张贴不工作。但是最初导航到/parterns/**确实有效,我认为不应该
<p:menuitem>
<h:commandLink ajax="false" action="/partners/search/partnerSearch"
styleClass="ui-menuitem-link
ui-corner-all">
<h:outputText value="Partners"/>
</h:commandLink>
</p:menuitem>
我假设这意味着JSF实际上没有使用请求分派器转发来“转发”导航结果(因此,Spring永远没有机会重新评估安全性)。我试着设置断点并寻找我自己,但这稍微超出了我的理解力
我知道我可以使用重定向(但就像我链接到的第一篇SO帖子一样,我不想这样做)。我还知道,我可以在菜单项周围放置
,以防止单击
事实上,我只是好奇为什么这根本不起作用,而一些消息来源似乎表明它应该起作用
<p:menuitem>
<h:commandLink ajax="false" action="/partners/search/partnerSearch"
styleClass="ui-menuitem-link
ui-corner-all">
<h:outputText value="Partners"/>
</h:commandLink>
</p:menuitem>
我对它不起作用的经验至少在另一个地方得到了回应:我的东西是:
<spring.version>3.1.3.RELEASE</spring.version>
<jsf.version>2.1.23</jsf.version> (mojarra)
<primeFaces.version>3.5.9</primeFaces.version>
3.1.3.0版本
2.1.23(莫哈拉)
3.5.9
嘿,还有一个原因说明为什么使用POST进行导航是一种不好的做法。这很公平,但有没有任何关于它为什么不能按预期工作的想法?仅仅是因为Spring Security filter没有被点击。