我是JSF的新手,我想了解为什么页面重定向和页面转发不会产生相同的安全渲染.
我有一个调用支持方法的JSF按钮:
<h:form>
<!-- content... -->
<p:commandButton action="#{login.play}" ... />
</h:form>
Run Code Online (Sandbox Code Playgroud)
登录托管bean
public String play() {
...
//forward implementation
return "play";
}
public String play() {
...
//redirect implementation
return "play?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)
我的页面play.xhtml很安全.只有角色admin或者user可以访问它但是使用我的第play一种方法,安全约束没有启用,我可以访问.它为什么不同?
安全性基于每个请求执行.前向重用当前请求对不同视图的响应.重定向会创建一个全新的请求,其响应将用于不同的视图.您可以通过查看浏览器地址栏中的请求URL轻松查看.如果是前锋则保持不变.
在一个不相关的说明,POST导航是不好的做法.您应该有条件地在同一页面中显示结果,或者使用普通链接或POST后的重定向通过GET导航.
| 归档时间: |
|
| 查看次数: |
2083 次 |
| 最近记录: |