当用户登录我的网站时,我想显示一个带有用户菜单的 div,其中包含他的收件箱、通知等。我必须使用 JAAS 和 JSF 来完成此操作吗?最好的方法是什么?如果你能指出我正确的方向或者一些教程,或者如果有一些奇特的方法可以做到这一点而不是使用渲染属性。提前致谢。
问问题
1328 次
2 回答
2
如果您的安全要求并不复杂,那么在没有 Jass 的情况下执行此操作的一种简单方法是使用会话范围的 bean来获取用户详细信息。
您在其中向用户显示已登录\记录数据的 div 将由该 bean 控制。
您不必使用渲染,具体取决于您希望向用户显示的内容。
例如,给用户的消息可以始终显示为
<h:outputText value="#{UserSession.userMessage}">
即使用户已注销。
但是,我会考虑使用 render 属性。
希望这可以帮助
添加了一个简单的会话 bean 示例。您可以向 bean 添加详细信息,但我建议添加所需的最小值。通过这个 bean,您将能够监视用户。
来自java:
SessionBean session = (SessionBean)FacesUtils.findBeanInSession("SessionBean");
来自 jsf 文件,在其属性上使用渲染。我添加了 getLoggedIn 方法作为示例。
java类:
public class SessionBean implements Serializable{
private static final long serialVersionUID = -867309384910092832L;
private int userRole;
private int userId;
private String userName;
public boolean isLoggedIn ()
{
return userId>0 ;
}
}
人脸配置:
<managed-bean>
<managed-bean-name>SessionBean</managed-bean-name>
<managed-bean-class>com.yourPackage.beans.SessionBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
于 2011-01-28T06:51:06.007 回答
1
你好,
首先,您必须对用户进行身份验证并决定用户访问应用程序的权限。为此,您可能会在支持 bean 中设置诸如标志之类的变量。这应该映射到特定组件的渲染属性中。
这是我们如何根据用户权限显示页面的想法方式。
于 2011-01-28T03:09:32.023 回答