Spring安全性可以用于JSF导航吗?

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

我的问题与这个现有的SO帖子非常相似:

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没有被点击。