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());
}
.......
}
을 다음과 같이 내가 인증 헤더를 전달합니다 다음과 같이 나는 서버를 설정 . 내가 서버를 영역에 대해 적극적으로 인증해야한다고 생각하지만 서버를 구성하는 방법을 찾지 못했습니다. 아무도이 경험이 없습니까?
고맙습니다. – badgerduke