嗨,我实际上是想就一个非常具体的问题获得提示或想法。技术上下文是带有 JSF 2.1 的 java web 应用程序。
所以我有一个由 JSF 2.1 提供支持的简单 java ee 应用程序。结构如下
\webapp
\WEB-INF
\templates
header.xhtml
menu.xhtml
web.xml
\secured
\operation1
op1.xhtml
\operation2
op2.xhtml
\operation3
op3.xhtml
userhome.xhtml
login.xhtml
如果未设置“用户”bean(实际上是会话范围的bean) ,我有一个@WebFilter
限制访问。/secured/*
同时在登录时,我根据用户凭据创建了一个动态菜单。这个菜单(MenuItems)指向一个或多个操作(xhtml 页面)。
到目前为止一切顺利,用户登录,菜单是动态的,正在生成链接,点击后他/她可以导航到他/她应该执行的任何操作。
我的问题是我无法决定限制对这些页面的绝对 url 访问的优雅方式。如果 user1 被“授权”执行 operation1 而不是 operation2 或 operation3,目前我找不到检查他的会话状态和应用通用规则(导航规则?)的最优雅的方法,如果实际的 web 用户写在 url bar 操作的绝对路径。
'/secured/operation1/op2.xhtml'
实现这种要求的最兼容 JSF2 的方式是什么?
我已经在每个单独的opxx.xhtml
页面上尝试过 preRenderView,不幸的是它没有工作 + 我不喜欢在每个操作上重复它
非常感谢您的提示。