package br.com.livro.rest; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.Context; import javax.ws.rs.core.Feature; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.glassfish.jersey.client.oauth1.AccessToken; import org.glassfish.jersey.client.oauth1.ConsumerCredentials; import org.glassfish.jersey.client.oauth1.OAuth1ClientSupport; @Path("/carrosv2") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class CarrosResourceV2 { // URL do servidor do web service REST private static final String URL = "http://localhost:8080/Carros"; @Context private HttpServletRequest req; @GET public Response getCarros() { Client client = getClient(); Response r = Response.ok(client.target(URL).path("/rest/carros") .request(MediaType.APPLICATION_JSON) .get(String.class)).build(); return r; } @GET @Path("/userInfo") @Produces(MediaType.TEXT_PLAIN + ";charset=utf-8") public Response userInfo() { Client client = getClient(); Response r = Response.ok(client.target(URL).path("/rest/userInfo") .request(MediaType.TEXT_PLAIN) .get(String.class)).build(); return r; } private Client getClient() { AccessToken accessToken = (AccessToken) req.getSession().getAttribute("accessToken"); String consumerKey = MyApplication.CONSUMER_KEY; String consumerSecret = MyApplication.CONSUMER_SECRET; ConsumerCredentials credentials = new ConsumerCredentials(consumerKey,consumerSecret); Feature feature = OAuth1ClientSupport.builder(credentials).feature().accessToken(accessToken).build(); Client client = ClientBuilder.newClient().register(feature).register(GsonMessageBodyHandler.class); return client; } }