private String getAuthorizedRpt(String asUri, String ticket) throws OxTrustAuthorizationException {
try {
UmaMetadata umaMetadata = UmaClientFactory.instance().createMetadataService(asUri).getMetadata();
if (umaMetadata == null) {
throw new OxTrustAuthorizationException(String.format("Failed to load valid UMA metadata configuration from: %s", asUri));
}
TokenRequest tokenRequest = getAuthorizationTokenRequest(umaMetadata);
UmaTokenService tokenService = UmaClientFactory.instance().createTokenService(umaMetadata);
UmaTokenResponse rptResponse = tokenService.requestJwtAuthorizationRpt(ClientAssertionType.JWT_BEARER.toString(), tokenRequest.getClientAssertion(), GrantType.OXAUTH_UMA_TICKET.getValue(), ticket, null, null, null, null, null);
if (rptResponse == null) {
throw new OxTrustAuthorizationException("UMA RPT token response is invalid");
}
if (StringUtils.isBlank(rptResponse.getAccessToken())) {
throw new OxTrustAuthorizationException("UMA RPT is invalid");
}
this.rpt = rptResponse.getAccessToken();
return rpt;
} catch (Exception ex) {
throw new OxTrustAuthorizationException(ex.getMessage(), ex);
}
}