@Override public CompletionStage<Object> inject(HttpRequest request, HttpResponse response, boolean unwrapAsync) { List<String> list = request.getHttpHeaders().getRequestHeaders().get(paramName); return CompletableFuture.completedFuture(extractValues(list)); }
@Override public void checkViolationsfromCDI(HttpRequest request) { if (request == null) { return; } SimpleViolationsContainer violationsContainer = SimpleViolationsContainer.class.cast(request.getAttribute(SimpleViolationsContainer.class.getName())); if (violationsContainer != null && violationsContainer.size() > 0) { throw new ResteasyViolationExceptionImpl(violationsContainer, request.getHttpHeaders().getAcceptableMediaTypes()); } }
public static MockHttpRequest deepCopy(HttpRequest request) throws IOException { MockHttpRequest mock = new MockHttpRequest(); mock.uri = (ResteasyUriInfo) request.getUri(); mock.httpHeaders = (ResteasyHttpHeaders) request.getHttpHeaders(); mock.httpMethod = request.getHttpMethod(); byte[] bytes = ReadFromStream.readFromStream(1024, request.getInputStream()); mock.inputStream = new ByteArrayInputStream(bytes); return mock; }
@Override public void setProperty(String name, Object object) { if (object == null) { request.removeAttribute(name); } else { request.setAttribute(name, object); } }
public RequestImpl(final HttpRequest request, final HttpResponse response) { this.headers = request.getHttpHeaders(); this.httpMethod = request.getHttpMethod().toUpperCase(); this.request = request; this.response = response; }
if (!request.getHttpMethod().equalsIgnoreCase("GET") || request.getAttribute(ServerCacheHitFilter.DO_NOT_CACHE_RESPONSE) != null) Object occ = context.getHeaders().getFirst(HttpHeaders.CACHE_CONTROL); if (occ == null) context.proceed(); byte[] entity = buffer.toByteArray(); Object etagObject = context.getHeaders().getFirst(HttpHeaders.ETAG); String etag = null; if (etagObject == null) context.getHeaders().putSingle(HttpHeaders.ETAG, etag); if (context.getHeaders().containsKey(HttpHeaders.VARY)) { for (Object varyHeader : context.getHeaders().get(HttpHeaders.VARY)) { if (request.getMutableHeaders().containsKey(varyHeader)) { varyHeaders.addAll((String) varyHeader, request.getMutableHeaders().get(varyHeader)); cache.add(request.getUri().getRequestUri().toString(), context.getMediaType(), cc, context.getHeaders(), entity, etag, varyHeaders);
@Override public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException { List<String> acceptEncoding = request.getHttpHeaders().getRequestHeaders().get(HttpHeaders.ACCEPT_ENCODING); if (acceptEncoding != null) { StringBuffer buf = new StringBuffer(); for (String accept : acceptEncoding) { if (buf.length() > 0) buf.append(","); buf.append(accept); } List<String> accepts = AcceptParser.parseAcceptHeader(buf.toString()); for (String encoding : accepts) { if (encodings.contains(encoding.toLowerCase())) { context.getHeaders().putSingle(HttpHeaders.CONTENT_ENCODING, encoding); break; } } } context.proceed(); } }
@POST @Consumes("text/xml;charset=utf-8") @Produces("text/xml;charset=utf-8") public Response validate(String input) { MultivaluedMap<String, String> queryParams = request.getUri().getQueryParameters(); try { String soapAction = Optional.ofNullable(request.getHttpHeaders().getHeaderString("SOAPAction")).map(s -> s.trim().replace("\"", "")).orElse(""); if (!soapAction.equals("http://www.oasis-open.org/committees/security")) { throw new CASValidationException(CASErrorCode.INTERNAL_ERROR, "Not a validation request", Response.Status.BAD_REQUEST); } String service = queryParams.getFirst(TARGET_PARAM); boolean renew = queryParams.containsKey(CASLoginProtocol.RENEW_PARAM); checkRealm(); checkSsl(); checkClient(service); String issuer = Urls.realmIssuer(request.getUri().getBaseUri(), realm.getName()); String ticket = getTicket(input); checkTicket(ticket, renew); UserModel user = clientSession.getUserSession().getUser(); Map<String, Object> attributes = getUserAttributes(); SAML11ResponseType response = SamlResponseHelper.successResponse(issuer, user.getUsername(), attributes); return Response.ok(SamlResponseHelper.soap(response)).build(); } catch (CASValidationException ex) { logger.warnf("Invalid SAML1.1 token %s", ex.getErrorDescription()); SAML11ResponseType response = SamlResponseHelper.errorResponse(ex); return Response.ok().entity(SamlResponseHelper.soap(response)).build(); } }
@POST @Produces(MediaType.TEXT_HTML) @Path("/{action}") public String post(@PathParam("action") String action) { String title = "APP_REQUEST"; if (action.equals("auth")) { title = "AUTH_RESPONSE"; } else if (action.equals("logout")) { title = "LOGOUT_REQUEST"; } StringBuilder sb = new StringBuilder(); sb.append("<html><head><title>" + title + "</title></head><body>"); sb.append("<b>Form parameters: </b><br>"); HttpRequest request = ResteasyProviderFactory.getContextData(HttpRequest.class); MultivaluedMap<String, String> formParams = request.getDecodedFormParameters(); for (String paramName : formParams.keySet()) { sb.append(paramName).append(": ").append("<span id=\"").append(paramName).append("\">").append(formParams.getFirst(paramName)).append("</span><br>"); } sb.append("<br>"); UriBuilder base = UriBuilder.fromUri("http://localhost:8180/auth"); sb.append("<a href=\"" + RealmsResource.accountUrl(base).build("test").toString() + "\" id=\"account\">account</a>"); sb.append("</body></html>"); return sb.toString(); }
SecurityContext securityContext = ResteasyContext.getContextData(SecurityContext.class); text.append(String.format("baseUri=[%s] requestUri=[%s] method=[%s] authScheme=[%s]", request.getUri().getBaseUri(), request.getUri().getRequestUri(), request.getHttpMethod(), RESTEasyTracingUtils.toStringOrNA(securityContext == null ? null : securityContext.getAuthenticationScheme()))); for (String header : RESTEasyTracingUtils.SUMMARY_HEADERS) { HttpHeaders headers = request.getHttpHeaders(); if (headers != null) { for (String header : headers.getRequestHeaders().keySet()) { if (!RESTEasyTracingUtils.SUMMARY_HEADERS.contains(header)) { text.append(String.format(" %s=%s", header, RESTEasyTracingUtils.toStringOrNA(headers.getRequestHeaders().get(header))));
public MediaType selectResponseType() { String format = uriInfo.getQueryParameters().getFirst(CASLoginProtocol.FORMAT_PARAM); if (format != null && !format.isEmpty()) { //if parameter is set, it overrides all header values (see spec section 2.5.1) request.getMutableHeaders().putSingle(HttpHeaders.ACCEPT, "application/" + format.toLowerCase()); } try { Variant variant = restRequest.selectVariant(Variant.mediaTypes(MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_JSON_TYPE).build()); return variant == null ? MediaType.APPLICATION_XML_TYPE : variant.getMediaType(); } catch (BadRequestException e) { //the default Accept header set by java.net.HttpURLConnection is invalid (cf. RESTEASY-960) return MediaType.APPLICATION_XML_TYPE; } } }
public void populatePathParams(HttpRequest request, Matcher matcher, String path) ResteasyUriInfo uriInfo = (ResteasyUriInfo) request.getUri(); for (Group group : groups) if (segmentIndex + numSegments > request.getUri().getPathSegments().size()) for (int i = 0; i < numSegments; i++) decodedSegments[i] = request.getUri().getPathSegments().get(segmentIndex + i); encodedSegments[i] = request.getUri().getPathSegments(false).get(segmentIndex + i); uriInfo.getEncodedPathParameterPathSegments().add(group.name, encodedSegments); uriInfo.getPathParameterPathSegments().add(group.name, decodedSegments);
MediaType mediaType = request.getHttpHeaders().getMediaType(); if (mediaType == null) MultivaluedMap<String, String> map = request.getDecodedFormParameters(); if (map != null) for (Entry<String, List<String>> entry : map.entrySet()) is = request.getInputStream(); .getHttpHeaders().getRequestHeaders(), is, request);
private void updateOptionsFormParam(final HttpRequest request, final Map<String, String> optionsMap) { final String options = getNonEncodedStringRepresentation(optionsMap); // form parameters request.getFormParameters().remove(OPTIONS); request.getFormParameters().add(OPTIONS, encodeIfNecessary(options)); // decoded form parameters request.getDecodedFormParameters().remove(OPTIONS); request.getDecodedFormParameters().add(OPTIONS, options); }
@Override public CompletionStage<Object> inject(HttpRequest request, HttpResponse response, boolean unwrapAsync) { List<String> list = request.getDecodedFormParameters().get(paramName); if (list == null) { // FIXME: looks like a bug, no? extractValues(null); } else if (encode) { List<String> encodedList = new ArrayList<String>(); for (String s : list) { encodedList.add(URLEncoder.encode(s)); } list = encodedList; } return CompletableFuture.completedFuture(extractValues(list)); }
public Match match(List<Match> matches, String httpMethod, HttpRequest request) MediaType contentType = request.getHttpHeaders().getMediaType(); List<MediaType> requestAccepts = request.getHttpHeaders().getAcceptableMediaTypes(); List<WeightedMediaType> weightedAccepts = new ArrayList<WeightedMediaType>(); for (MediaType accept : requestAccepts) weightedAccepts.add(WeightedMediaType.parse(accept)); request.setAttribute(RESTEASY_CHOSEN_ACCEPT, sortEntry.getAcceptType()); return sortEntry.match;
String contentType = servletRequest.getContentType(); MediaType mediaType = MediaType.valueOf(contentType); MessageBodyReader reader = factory.getMessageBodyReader(type, genericType, annotations, mediaType); if (reader == null) throw new BadRequestException(Messages.MESSAGES.couldNotFindMessageBodyReader(genericType, mediaType)); return reader.readFrom(type, genericType, annotations, mediaType, request.getHttpHeaders().getRequestHeaders(), request .getInputStream());
public <T> T doRead(Class<T> type, Type genericType, MediaType mediaType, Annotation[] annotations, MultivaluedMap<String, String> requestHeaders, InputStream inputStream) throws IOException { try { final Map<String, Object> attributes = new HashMap<String, Object>(); AbstractReaderInterceptorContext messageBodyReaderContext = new ClientReaderInterceptorContext(interceptors, factory, type, genericType, annotations, mediaType, requestHeaders, inputStream, attributes); return (T) messageBodyReaderContext .proceed(); } catch (Exception e) { if (e instanceof ReaderException) { throw (ReaderException) e; } else { throw new ReaderException(e); } } }
@Override public MultivaluedMap<String, String> getHeaders() { return httpRequest.getHttpHeaders().getRequestHeaders(); }