@Override public String getRemoteHost() { final String host = playDelegate.host(); return host.contains(":") ? host.substring(0, host.indexOf(':')) : host; }
@Override public int getRemotePort() { final String host = playDelegate.host(); return host.contains(":") ? Integer.parseInt(host.substring(host.indexOf(':') + 1)) : (isSecure() ? 443 : 80); }
@Override public String getServerName() { final String host = playDelegate.host(); final int sep = host.indexOf(':'); return sep < 0 ? host : host.substring(0, sep); }
public class MyRequestHandler implements HttpRequestHandler { private play.api.http.JavaCompatibleHttpRequestHandler adminRequestHandler; private play.api.http.JavaCompatibleHttpRequestHandler webRequestHandler; @Inject public MyRequestHandler(web.Routes webRoutes, HttpErrorHandler httpErrorHandler,admin.Routes adminRoutes, HttpConfiguration configuration, HttpFilters httpFilters, JavaHandlerComponents components) { adminRequestHandler = new JavaCompatibleHttpRequestHandler(adminRoutes,httpErrorHandler ,configuration, httpFilters,components); webRequestHandler = new JavaCompatibleHttpRequestHandler(webRoutes,httpErrorHandler ,configuration, httpFilters,components); } @Override public HandlerForRequest handlerForRequest(Http.RequestHeader request) { Logger.info("Request ---> ["+ request.method()+"] "+request.host() + request.uri() ); if("admin".equalsIgnoreCase(getSubDomain(request))){ Tuple2<RequestHeader, Handler> result = adminRequestHandler.handlerForRequest(request._underlyingHeader()); return new HandlerForRequest(new RequestHeaderImpl(result._1()), result._2()); }else { Tuple2<RequestHeader, Handler> result = webRequestHandler.handlerForRequest(request._underlyingHeader()); return new HandlerForRequest(new RequestHeaderImpl(result._1()), result._2()); } }
public CompletionStage<Result> executeInvoke(final ServletMatching servlet, final Http.RequestHeader requestHeader, final InputStream stream, final String servletPath) { final Thread thread = Thread.currentThread(); final ClassLoader contextClassLoader = thread.getContextClassLoader(); thread.setContextClassLoader(getClassLoader()); try { final ResponseAdapter response = new ResponseAdapter( (requestHeader.secure() ? "https" : "http") + "://" + requestHeader.host() + requestHeader.uri(), this); final RequestAdapter request = new RequestAdapter(requestHeader, stream, response, injector, this, servlet.getDynamicServlet(), servletPath); request.setAttribute(ResponseAdapter.class.getName(), response); if (!servlet.getDynamicServlet().isAsyncSupported()) { return CompletableFuture.supplyAsync(() -> doExecute(servlet, response, request), getDefaultExecutor()) .thenCompose(identity()); } return doExecute(servlet, response, request); } finally { thread.setContextClassLoader(contextClassLoader); } }
@Override public int getServerPort() { final String host = playDelegate.host(); final int sep = host.indexOf(':'); return sep < 0 ? (playDelegate.secure() ? 443 : 80) : Integer.parseInt(host.substring(sep + 1)); }