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