2012-05-28 7 views
1

웹 응용 프로그램에서 응용 프로그램이 배포되는 tomcat에 현재 로그인 한 사용자의 사용자 이름과 암호 또는 사용자 역할을 프로그래밍 방식으로 어떻게 알 수 있습니까?tomcat과 web-app 간 사용자 역할 공유

답변

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> 
+0

고마워요. 웹 응용 프로그램에서 tomcat 사용자를 로그 아웃하려면 어떻게해야합니까? –

+1

'ExternalContext # invalidateSession()'에 의해 빈의 동작 메쏘드에서 세션을 무효화합니다 (그리고 이후에 리다이렉트를 보냅니다). – BalusC

+0

tomcat 세션이 무효화되지 않습니다. 다른 브라우저에서 모든 메소드를 시도했습니다. tomcat 로그 아웃을 허용하기 위해 톰캣 구성에서 설정해야하는 것이 있습니까? –