2013-02-04 2 views
2

최근에 로그인 한 사용자의 사용자 이름을 검색하려고합니다. .getRemoteUser() 메서드를 사용하여 사용자 이름을 읽었습니다. 그러나 사용자 정보를 표시하지 못했습니다.서블릿을 사용하여 사용자 세부 정보 얻기

내 코드입니다 : 내가 올바른 결과를 포기하지 않을 이유를 모르는

response.setContentType("text/plain"); 
PrintWriter out= response.getWriter(); 
// Some introductory HTML... 
String remoteUser = request.getRemoteUser(); 
// See if the client is allowed 
if(remoteUser == null) { 
    out.println("Welcome"); 
} else { 
    out.println("Welcome " + remoteUser + "!"); 
} 

. 항상 "Welcome"결과를 생성합니다. 즉, request.getRemoteUser() == null을 의미합니다. 누구든지 원격 사용자 정보를 검색하는 방법을 알려주십시오. 미리 감사드립니다 ....

+0

최근 무엇에 로그인? 방법? – EJP

+0

try.getUserPrincipal(). getName(); –

+0

인증 메커니즘에 따라 다릅니다. 최근에 웹 사이트에 로그인 한 사용자는 –

답변

1

request.getRemoteUser()는 로그인 한 사용자를 반환하고 그렇지 않으면 null을 반환합니다. 그것은 어떤 종류의 인증을 사용 하느냐에 달려 있습니다.

또 다른 이유는 클라이언트 (브라우저)가 요청과 함께 사용자 이름을 전송하지 않기 때문입니다. 인증을 요청한 URL 트리 외부에있는 경우에 발생할 수 있습니다.

0

HTTP 기본 인증 만 사용하면 원격 사용자가 채워집니다.

다음은 기본 인증에 대한 표준 인증 메커니즘 아래

정적 문자열 BASIC_AUTH 문자열 식별자 중 어느 하나에 사용할 수있는 사실에 대해서는 basic HTTP authentication in Java

설정에 대한 간단한 튜토리얼입니다.

static String CLIENT_CERT_AUTH 클라이언트 인증서 인증을위한 문자열 식별자입니다.

static String DIGEST_AUTH 다이제스트 인증을위한 문자열 식별자입니다.

정적 문자열 FORM_AUTH는