如何检查用户是否已登录?

kra*_*mir 5 jsf jsf-2

我希望在用户未登录时显示登录链接,并在用户登录时显示登出链接.我正在使用中定义的容器管理安全性web.xml.

我怎样才能做到这一点?

Bal*_*usC 17

登录用户的用户名可供ExternalContext#getRemoteUser()封底人员使用HttpServletRequest#getRemoteUser().两者都分别在EL #{facesContext.externalContext.remoteUser}#{request.remoteUser}.如果是null,则表示用户未登录.

因此,在您的视图中,您可以在rendered属性中检查它,如下所示:

<h:form rendered="#{not empty request.remoteUser}">
    <h:commandLink value="Logout" action="#{auth.logout}" />
</h:form>
<h:link value="Login" outcome="login" rendered="#{empty request.remoteUser}" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: