如何在我的网络应用程序中以编程方式知道当前登录到部署了应用程序的tomcat的用户的用户名和密码或用户角色?
答案 0 :(得分:4)
此信息可由HttpServletRequest
获取,因此也可ExternalContext
。
可以使用以下方法:
String username = externalContext.getRemoteUser();
UserPrincipal principal = externalContext.getUserPrincipal();
boolean admin = externalContext.isUserInRole("ADMIN");
出于安全原因,您无法以任何方式获取密码。
请注意,HttpServletRequest
在EL中可用作#{request}
。所以以下也应该是可能的:
<p>Welcome, #{request.remoteUser}</p>
<h:panelGroup id="adminPanel" rendered="#{request.isUserInRole('ADMIN')}">
...
</h:panelGroup>