1

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

4

2 回答 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 回答