/* * 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.ws.rs.uma; import org.jboss.resteasy.client.ClientResponseFailure; import org.testng.annotations.BeforeClass; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.xdi.oxauth.BaseTest; import org.xdi.oxauth.client.uma.CreateRptService; import org.xdi.oxauth.client.uma.UmaClientFactory; import org.xdi.oxauth.client.uma.wrapper.UmaClient; import org.xdi.oxauth.model.uma.RPTResponse; import org.xdi.oxauth.model.uma.UmaConfiguration; import org.xdi.oxauth.model.uma.UmaTestUtil; import org.xdi.oxauth.model.uma.wrapper.Token; import javax.ws.rs.core.Response; import static org.testng.Assert.*; /** * Test cases for the obtaining UMA requester permission token flow (HTTP) * * @author Yuriy Movchan Date: 10/03/2012 */ public class ObtainRptTokenFlowHttpTest extends BaseTest { protected UmaConfiguration metadataConfiguration; protected Token m_aat; protected String rptToken; public ObtainRptTokenFlowHttpTest() { } public ObtainRptTokenFlowHttpTest(UmaConfiguration metadataConfiguration) { this.metadataConfiguration = metadataConfiguration; } @BeforeClass @Parameters({"umaMetaDataUrl", "umaAatClientId", "umaAatClientSecret"}) public void init(final String umaMetaDataUrl, final String umaAatClientId, final String umaAatClientSecret) throws Exception { if (this.metadataConfiguration == null) { this.metadataConfiguration = UmaClientFactory.instance().createMetaDataConfigurationService(umaMetaDataUrl).getMetadataConfiguration(); UmaTestUtil.assert_(this.metadataConfiguration); } m_aat = UmaClient.requestAat(tokenEndpoint, umaAatClientId, umaAatClientSecret); UmaTestUtil.assert_(m_aat); } /** * Test for the obtaining UMA RPT token */ @Test @Parameters({"umaAmHost"}) public void testObtainRptTokenFlow(final String umaAmHost) throws Exception { showTitle("testObtainRptTokenFlow"); CreateRptService requesterPermissionTokenService = UmaClientFactory.instance().createRequesterPermissionTokenService(this.metadataConfiguration); // Get requester permission token RPTResponse requesterPermissionTokenResponse = null; try { requesterPermissionTokenResponse = requesterPermissionTokenService.createRPT("Bearer " + m_aat.getAccessToken(), umaAmHost); } catch (ClientResponseFailure ex) { System.err.println(ex.getResponse().getEntity(String.class)); throw ex; } UmaTestUtil.assert_(requesterPermissionTokenResponse); this.rptToken = requesterPermissionTokenResponse.getRpt(); } /** * Test for the obtaining UMA RPT token */ @Test @Parameters({"umaAmHost"}) public void testObtainRptTokenFlowWithInvalidAat(final String umaAmHost) throws Exception { showTitle("testObtainRptTokenFlowWithInvalidAat"); CreateRptService requesterPermissionTokenService = UmaClientFactory.instance().createRequesterPermissionTokenService(this.metadataConfiguration); // Get requester permission token RPTResponse requesterPermissionTokenResponse = null; try { requesterPermissionTokenResponse = requesterPermissionTokenService.createRPT("Bearer " + m_aat.getAccessToken() + "_invalid", umaAmHost); } catch (ClientResponseFailure ex) { System.err.println(ex.getResponse().getEntity(String.class)); assertEquals(ex.getResponse().getStatus(), Response.Status.UNAUTHORIZED.getStatusCode(), "Unexpected response status"); } assertNull(requesterPermissionTokenResponse, "Requester permission token response is not null"); } }