下面列出了org.apache.http.client.methods.CloseableHttpResponse#setHeader() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void testCasAuthenticationKo() throws Exception {
DriverRequest driverRequest = TestUtils.createDriverRequest(driver1);
OutgoingRequest outgoingRequest =
httpClientRequestExecutor.createOutgoingRequest(driverRequest, "http://localhost:8080", true);
FragmentEvent event =
new FragmentEvent(driverRequest.getOriginalRequest(), outgoingRequest, outgoingRequest.getContext());
CloseableHttpResponse httpResponse = BasicCloseableHttpResponse.adapt(createMockResponse("0"));
httpResponse.setHeader("Location", "http://localhost/loginurl?service=http");
event.setHttpResponse(httpResponse);
HttpResponse responseOnceAuthenticated = createMockResponse("1");
mockConnectionManager.setResponse(responseOnceAuthenticated);
handler.event(EventManager.EVENT_FRAGMENT_POST, event);
// No extra request should be sent
assertNull(mockConnectionManager.getSentRequest());
// The response should be "unauthorized" as we cannot send the CAS ticket
assertEquals(401, event.getHttpResponse().getStatusLine().getStatusCode());
}
public void testCasAuthenticationOk() throws Exception {
AttributePrincipal userPrincipal = new AttributePrincipal() {
private static final long serialVersionUID = 1L;
@Override
public Map<String, Object> getAttributes() {
return null;
}
@Override
public String getName() {
return "test";
}
@Override
public String getProxyTicketFor(String arg0) {
return "proxy_ticket";
}
};
IncomingRequest incomingRequest = TestUtils.createIncomingRequest().setUserPrincipal(userPrincipal).build();
DriverRequest driverRequest = new DriverRequest(incomingRequest, driver1, "/");
OutgoingRequest outgoingRequest =
httpClientRequestExecutor.createOutgoingRequest(driverRequest, "http://localhost:8080", true);
FragmentEvent event =
new FragmentEvent(driverRequest.getOriginalRequest(), outgoingRequest, outgoingRequest.getContext());
CloseableHttpResponse httpResponse = BasicCloseableHttpResponse.adapt(createMockResponse("0"));
httpResponse.setHeader("Location", "http://localhost/loginurl?service=http");
event.setHttpResponse(httpResponse);
HttpResponse responseOnceAuthenticated = createMockResponse("1");
mockConnectionManager.setResponse(responseOnceAuthenticated);
handler.event(EventManager.EVENT_FRAGMENT_POST, event);
// A new request should have been sent with the proxy ticket
assertNotNull(mockConnectionManager.getSentRequest());
assertEquals("/?ticket=proxy_ticket", mockConnectionManager.getSentRequest().getRequestLine().getUri());
assertEquals(200, event.getHttpResponse().getStatusLine().getStatusCode());
assertEquals("1", EntityUtils.toString(event.getHttpResponse().getEntity()));
}