JSF根据用户权限定制网页

时间:2011-01-28 00:58:00

标签: java jsf web jaas

当用户登录我的网站时,我想显示一个带有用户菜单的div,其中包含他的收件箱,通知等。我是否必须使用JAAS和JSF来完成此操作?最好的方法是什么?如果你可以指出我正确的方向或者一些教程,或者有一些奇特的方法来做这个而不是使用render属性。提前谢谢。

2 个答案:

答案 0 :(得分:2)

如果您的安全要求并不复杂,那么在没有Jass的情况下执行此操作的简单方法是使用会话范围的bean 来获取用户详细信息。

您将登录的\ logs数据提供给用户的div将由此bean控制。

您不必使用渲染,具体取决于您希望向用户显示的内容。

例如,向用户发送的消息可以始终显示为

<h:outputText value="#{UserSession.userMessage}"> 

即使用户已退出。

但我会考虑使用render属性。

希望这有帮助

添加了一个简单的会话bean示例。 您可以向bean添加详细信息,但我建议添加所需的最低要求。 从这个bean你将能够监视用户。

来自java的

SessionBean session = (SessionBean)FacesUtils.findBeanInSession("SessionBean");

来自jsf文件,在其属性上使用render。我添加了getLoggedIn方法作为示例。

java class:

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>

答案 1 :(得分:1)

HI,

首先,您必须对用户进行身份验证,并确定用户访问该应用程序的权限。因为这可能会在后台bean中设置像flag这样的变量。那应该映射到特定组件的render属性。

这是我们如何根据用户权限显示页面的想法。