基于表单登录java Web应用程序

时间:2013-02-02 18:14:41

标签: security jsf authentication jboss

我正在尝试在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类中使用它。 谢谢!

1 个答案:

答案 0 :(得分:0)

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

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>