0

我正在尝试对 Web 应用程序执行基于表单的登录。我正在使用 JSF 和 JBoss v7.1.1。我已按照网页 http://docs.oracle.com/javaee/6/tutorial/doc/bncbx.html#bncby的说明进行操作

这是我的登录页面:

登录以访问安全页面:

    <h:panelGrid columns="2">
        <h:outputLabel value="Username: " />
        <input type="text" id="j_username" name="j_username" />

        <h:outputLabel value="Password: " />
        <input type="password" id="j_password" name="j_password" />

        <h:outputText value="" />
        <h:panelGrid columns="1">
            <input type="submit" name="submit" value="Login" />
        </h:panelGrid>
    </h:panelGrid>
    <br />
</form>

我已经设法执行了身份验证,但是当用户被重定向到受限资源时,我需要知道用户使用的登录数据(例如,用于成功执行登录的用户名)。有谁知道如何访问此信息?我想在 JSF 页面的 ManagedBean 类中使用它。谢谢!

4

1 回答 1

0

远程用户位于可用的 JSF bean 中ExternalContext#getRemoteUser()

String remoteUser = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
 // ...

这是从 中获得的HttpServletRequest#getRemoteUser(),因此也意味着它在 JSF 视图中可用,如下所示:

<p>You're logged in as #{request.remoteUser}.</p>

或者,更详细:

<p>You're logged in as #{facesContext.externalContext.remoteUser}.</p>
于 2013-02-03T02:05:45.787 回答