2013-04-12 1 views
1

Jersey를 사용하여 작성된 REST 서비스에 대한 승인 테스트를 수행하고 있습니다. 나는 뉴저지 클라이언트 API를 사용하고 그리즐리 서버에 대해 실행하고Jersey Grizzly 서버가 인증을 수행하도록합니다

@Context private SecurityContext securityContext; //at class level 

String username = securityContext.getUserPrincipal().getName() //inside a resource 

: 내 서비스에, 나는 사용하여 성공적으로 (BASIC) 인증 된 사용자의 이름을 얻을 필요가있다.

WebResource resource = resource().path(_url); 
return resource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).header(HttpHeaders.AUTHORIZATION, new String(Base64.encode("judge:smails"))).post(ClientResponse.class, _formData); 

는하지만, 내 자원에 나는 사용자 이름을 얻으려는 NPE를 얻을 : 내 테스트에서

public class BaseResourceTest extends JerseyTest { 

    public BaseResourceTest() throws Exception { 

    super(new WebAppDescriptor.Builder("net.tds.adm.na.batchcut") 
     .contextPath(baseUri.getPath()) 
     .contextParam("contextConfigLocation","classpath:testContext.xml") 
     .initParam("com.sun.jersey.api.json.POJOMappingFeature", 
      "true").servletClass(SpringServlet.class) 
     .contextListenerClass(ContextLoaderListener.class) 
     .build()); 

    } 

....... 

} 

을 다음과 같이 내가 인증 헤더를 전달합니다 다음과 같이 나는 서버를 설정 . 내가 서버를 영역에 대해 적극적으로 인증해야한다고 생각하지만 서버를 구성하는 방법을 찾지 못했습니다. 아무도이 경험이 없습니까?

답변

관련 문제