2012-12-12 2 views
0
  • glassfish 서버에는 두 개의 웹 응용 프로그램이 배포되어 있습니다.
  • 두 웹 응용 프로그램 모두 REST 웹 서비스를 제공합니다.
  • 두 웹 서비스에 대한 액세스는 glassfish 보안 제약 조건 (현재 BASIC Auth 및 file-realm)을 통해 보안됩니다.

사용자가 웹 응용 프로그램 A의 서비스에 액세스하고 있다고 가정 해 봅시다. 권한이 부여 된 서비스 A는 REST 클라이언트를 통해 서비스 B를 호출하려고합니다.이미 glasfish 서버에 대해 권한이 부여 된 사용자로 가장하는 동안 REST 서비스 호출

이미 서비스가 glasfish 서버에 대해 권한이 부여 된 사용자를 가장하는 방법이 있습니까? 아마도 보안 컨텍스트를 전달하거나 헤더를 편집하는 것과 같은 것일 수 있습니까? 다른 필터가 있습니까?

@Context 
private SecurityContext securityContext; 

username = securityContext.getUserPrincipal().getName(); 
password = ???  

client.addFilter(new com.sun.jersey.api.client.filter.HTTPBasicAuthFilter(username, password)); 

감사합니다.

답변

0

인증 체계에 따라 다르지만 서비스 A가 수신 한 인증 헤더를 추출하여 서비스 B에 전달하는 것을 고려할 수 있습니다. 기본 인증에서 작동합니다.

당신은 다음 코드처럼, 그렇게 @HeaderParam을 사용할 수 있어야합니다 :

@GET 
@Path("/resourceA") 
public void doSomething(@HeaderParam("Authorization") String authorization) { 
    // now I can call resourceB and use 'authorization' 
} 
+0

기본 나를 위해 작동합니다! 어떻게 말해 줄 수 있니? 코드 예제가 있습니까? 나는 그런 것을 발견 할 수 없었다. 감사! – Matthias

+0

원본 답변을 편집했습니다. –

+0

감사! 이것은 나를 위해 일했다! (나는 "투표 - 업"할만한 평판이 아직 없다. – Matthias