/* * oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text. * * Copyright (c) 2014, Gluu */ package org.xdi.oxauth.model.uma; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.fail; import java.io.IOException; import java.net.URI; import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation.Builder; import javax.ws.rs.core.Response; import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; import org.xdi.oxauth.BaseTest; import org.xdi.oxauth.model.common.Holder; import org.xdi.oxauth.model.uma.wrapper.Token; import org.xdi.oxauth.util.ServerUtil; /** * @author Yuriy Zabrovarnyy * @version 0.9, 18/03/2013 */ class TAuthorization { private final URI baseUri; public TAuthorization(URI baseUri) { assertNotNull(baseUri); // must not be null this.baseUri = baseUri; } public RptAuthorizationResponse requestAuthorization(String p_umaPermissionAuthorizationPath, final String p_umaAmHost, final Token p_aat, final RptAuthorizationRequest p_request) { final Holder<RptAuthorizationResponse> h = new Holder<RptAuthorizationResponse>(); try { Builder request = ResteasyClientBuilder.newClient() .target(baseUri.toString() + p_umaPermissionAuthorizationPath).request(); request.header("Accept", UmaConstants.JSON_MEDIA_TYPE); request.header("Authorization", "Bearer " + p_aat.getAccessToken()); request.header("Host", p_umaAmHost); final String json = ServerUtil.createJsonMapper().writeValueAsString(p_request); Response response = request.post(Entity.json(json)); String entity = response.readEntity(String.class); BaseTest.showResponse("UMA : TAuthorization.requestAuthorization() : ", response, entity); assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), "Unexpected response code."); try { RptAuthorizationResponse result = ServerUtil.createJsonMapper().readValue(entity, RptAuthorizationResponse.class); // UmaTestUtil.assert_(result); h.setT(result); } catch (IOException e) { e.printStackTrace(); fail(); } } catch (Exception e) { e.printStackTrace(); fail(); } return h.getT(); } }