package com.github.hburgmeier.jerseyoauth2.rs.impl.filter; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.ws.rs.core.MultivaluedMap; import com.github.hburgmeier.jerseyoauth2.api.protocol.IHttpRequest; import com.sun.jersey.api.representation.Form; import com.sun.jersey.spi.container.ContainerRequest; public class HttpRequestAdapter implements IHttpRequest { protected ContainerRequest containerRequest; protected Map<String,String> queryParameters = new HashMap<>(); protected Form form; public HttpRequestAdapter(ContainerRequest containerRequest) { this.containerRequest = containerRequest; MultivaluedMap<String, String> queryParams = containerRequest.getQueryParameters(); for (Entry<String, List<String>> entry : queryParams.entrySet()) { StringBuffer values = new StringBuffer(); for (String val : entry.getValue()) { if (values.length()>0) { values.append(","); } values.append(val); } this.queryParameters.put(entry.getKey(), values.toString()); } } @Override public String getMethod() { return containerRequest.getMethod(); } @Override public String getHeaderField(String field) { return containerRequest.getHeaderValue(field); } @Override public String getQueryParameter(String queryParameter) { return queryParameters.get(queryParameter); } @Override public String getFormParameterValue(String field) { if (form==null) form = containerRequest.getFormParameters(); return form.getFirst(field); } }