Java 类org.eclipse.jetty.server.HttpConnection 实例源码
项目:emodb
文件:AuthenticationResourceFilter.java
/**
* Certain aspects of the container, such as logging, need the authentication information to behave properly.
* This method updates the request with the necessary objects to recognize the authenticated user.
*/
private void setJettyAuthentication(Subject subject) {
// In unit test environments there may not be a current connection. If any nulls are encountered
// then, by definition, there is no container to update.
HttpConnection connection = HttpConnection.getCurrentConnection();
if (connection == null) {
return;
}
Request jettyRequest = connection.getHttpChannel().getRequest();
if (jettyRequest == null) {
return;
}
// This cast down is safe; subject is always created with this type of principal
PrincipalWithRoles principal = (PrincipalWithRoles) subject.getPrincipal();
UserIdentity identity = principal.toUserIdentity();
jettyRequest.setAuthentication(new UserAuthentication(SecurityContext.BASIC_AUTH, identity));
}
项目:vespa
文件:HttpRequestDispatch.java
private void honourMaxKeepAliveRequests() {
if (jDiscContext.serverConfig.maxKeepAliveRequests() > 0) {
HttpConnection connection = getConnection(servletRequest);
if (connection.getMessagesIn() >= jDiscContext.serverConfig.maxKeepAliveRequests()) {
connection.getGenerator().setPersistent(false);
}
}
}
项目:vespa
文件:HttpRequestFactoryTest.java
@Override
public Object getAttribute(String name) {
switch (name) {
case "org.eclipse.jetty.server.HttpConnection":
HttpConnection connection = mock(HttpConnection.class);
when(connection.getCreatedTimeStamp()).thenReturn(System.currentTimeMillis());
return connection;
default:
return null;
}
}
项目:vespa
文件:ServletFilterRequestTest.java
private ServletRequest newServletRequest() throws Exception {
MockHttpServletRequest parent = new MockHttpServletRequest("GET", uri.toString());
parent.setProtocol(Version.HTTP_1_1.toString());
parent.setRemoteHost(host);
parent.setRemotePort(port);
parent.setParameter(paramName, paramValue);
parent.setParameter(listParamName, listParamValue);
parent.addHeader(headerName, headerValue);
parent.setAttribute(attributeName, attributeValue);
HttpConnection connection = Mockito.mock(HttpConnection.class);
when(connection.getCreatedTimeStamp()).thenReturn(System.currentTimeMillis());
parent.setAttribute("org.eclipse.jetty.server.HttpConnection", connection);
return new ServletRequest(parent, uri);
}
项目:gerrit
文件:HiddenErrorHandler.java
@Override
public void handle(
String target, Request baseRequest, HttpServletRequest req, HttpServletResponse res)
throws IOException {
HttpConnection conn = HttpConnection.getCurrentConnection();
baseRequest.setHandled(true);
try {
log(req);
} finally {
reply(conn, res);
}
}
项目:gerrit
文件:HiddenErrorHandler.java
private void reply(HttpConnection conn, HttpServletResponse res) throws IOException {
byte[] msg = message(conn);
res.setHeader(HttpHeader.CONTENT_TYPE.asString(), "text/plain; charset=ISO-8859-1");
res.setContentLength(msg.length);
try {
CacheHeaders.setNotCacheable(res);
} finally {
try (ServletOutputStream out = res.getOutputStream()) {
out.write(msg);
}
}
}
项目:gerrit
文件:HiddenErrorHandler.java
private static byte[] message(HttpConnection conn) {
String msg;
if (conn == null) {
msg = "";
} else {
msg = conn.getHttpChannel().getResponse().getReason();
if (msg == null) {
msg = HttpStatus.getMessage(conn.getHttpChannel().getResponse().getStatus());
}
}
return msg.getBytes(ISO_8859_1);
}
项目:pinpoint
文件:Jetty8ServerHandleInterceptor.java
@Override
protected Request getRequest(final Object[] args) {
if (args == null || args.length < 1) {
return null;
}
if (args[0] instanceof HttpConnection) {
try {
HttpConnection connection = (HttpConnection) args[0];
return connection.getRequest();
} catch (Throwable ignored) {
}
}
return null;
}
项目:emodb
文件:BasicToApiKeyAuthenticationFilter.java
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
Request httpRequest = (request instanceof Request) ?
(Request) request :
HttpConnection.getCurrentConnection().getHttpChannel().getRequest();
// If there already is an API key present then perform no further action
String apiKeyHeader = httpRequest.getHeader(ApiKeyRequest.AUTHENTICATION_HEADER);
String apiKeyParam = httpRequest.getParameter(ApiKeyRequest.AUTHENTICATION_PARAM);
if (!Strings.isNullOrEmpty(apiKeyHeader) || !Strings.isNullOrEmpty(apiKeyParam)) {
chain.doFilter(request, response);
return;
}
// If there is no authentication header then perform no further action
String authenticationHeader = httpRequest.getHeader(HttpHeader.AUTHORIZATION.asString());
if (Strings.isNullOrEmpty(authenticationHeader)) {
chain.doFilter(request, response);
return;
}
// Parse the authentication header to determine if it matches the replication user's credentials
int space = authenticationHeader.indexOf(' ');
if (space != -1 && "basic".equalsIgnoreCase(authenticationHeader.substring(0, space))) {
try {
String credentials = new String(
BaseEncoding.base64().decode(authenticationHeader.substring(space+1)), Charsets.UTF_8);
for (Map.Entry<String, String> entry : _basicAuthToApiKeyMap.entrySet()) {
if (entry.getKey().equals(credentials)) {
// The user name and password matches the replication credentials. Insert the header.
HttpFields fields = httpRequest.getHttpFields();
fields.put(ApiKeyRequest.AUTHENTICATION_HEADER, entry.getValue());
}
}
} catch (Exception e) {
// Ok, the header wasn't formatted properly. Do nothing.
}
}
chain.doFilter(request, response);
}
项目:vespa
文件:HttpServletRequestUtils.java
public static HttpConnection getConnection(HttpServletRequest request) {
return (HttpConnection)request.getAttribute("org.eclipse.jetty.server.HttpConnection");
}