/** * Returns the query string that is contained in the request URL. * Returns the undecoded value uri.getRawQuery() */ public String getQueryString() { return getUri().getRawQuery(); }
public String getServerName() { return getUri().getHost(); }
public String getRequestURI() { return getUri().getRawPath(); }
public String getScheme() { return getUri().getScheme(); }
public void setScheme(String scheme, boolean isSecure) { String uri = getUri().toString(); String arr [] = uri.split("://"); URI newUri = URI.create(scheme + "://" + arr[1]); setUri(newUri); }
public int getServerPort() { int port = getUri().getPort(); if(port == -1) { if(isSecure()) { port = DEFAULT_HTTPS_PORT; } else { port = DEFAULT_HTTP_PORT; } } return port; }
private static String createErrorMessage(DiscFilterRequest request, String message) { return String.format("%s %s denied for %s: %s", request.getMethod(), request.getUri().getPath(), request.getRemoteAddr(), message); }
@Override public void filter(DiscFilterRequest request, ResponseHandler handler) { InetAddress remoteAddr = InetAddresses.forString(request.getRemoteAddr()); if (!remoteAddr.isLoopbackAddress() && !request.getRemoteAddr().equals(request.getLocalAddr())) { FilterUtils.write(ErrorResponse.unauthorized( String.format("%s %s denied for %s: Unauthorized host", request.getMethod(), request.getUri().getPath(), request.getRemoteAddr())), handler); } }
private Optional<ErrorResponse> validateAccess(DiscFilterRequest request) { try { NodePrincipal hostIdentity = (NodePrincipal) request.getUserPrincipal(); if (hostIdentity == null) return Optional.of(ErrorResponse.internalServerError(createErrorMessage(request, "Principal is missing. NodeIdentifierFilter has not been applied."))); if (!authorizer.test(hostIdentity, request.getUri())) return Optional.of(ErrorResponse.forbidden(createErrorMessage(request, "Invalid credentials: " + hostIdentity.toString()))); request.setUserPrincipal(hostIdentity); return Optional.empty(); } catch (NodeIdentifier.NodeIdentifierException e) { return Optional.of(ErrorResponse.forbidden(createErrorMessage(request, "Invalid credentials: " + e.getMessage()))); } }