1

如何在我的网络应用程序中以编程方式知道当前登录到部署应用程序的 tomcat 的用户的用户名和密码或用户角色?

4

1 回答 1

4

此信息可通过HttpServletRequest并且固有地因此也可用ExternalContext

可以使用以下方法:

String username = externalContext.getRemoteUser();
UserPrincipal principal = externalContext.getUserPrincipal();
boolean admin = externalContext.isUserInRole("ADMIN");

出于安全原因,您无法以任何方式获取密码。

请注意,在 ELHttpServletRequest中可用。#{request}所以以下也应该是可能的:

<p>Welcome, #{request.remoteUser}</p>

<h:panelGroup id="adminPanel" rendered="#{request.isUserInRole('ADMIN')}">
    ...
</h:panelGroup>
于 2012-05-28T12:14:53.577 回答