/** * UMA2 spec (edit 4) defined to possible requests, single permission or list of permission. So here we parse manually * * @param requestAsString request as string * @return uma permission list */ private UmaPermissionList parseRequest(String requestAsString) { final ObjectMapper mapper = ServerUtil.createJsonMapper().configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, false); try { org.xdi.oxauth.model.uma.UmaPermission permission = mapper.readValue(requestAsString, org.xdi.oxauth.model.uma.UmaPermission.class); return new UmaPermissionList().addPermission(permission); } catch (IOException e) { // ignore } try { UmaPermissionList permissions = mapper.readValue(requestAsString, org.xdi.oxauth.model.uma.UmaPermissionList.class); if (!permissions.isEmpty()) { return permissions; } log.error("Permission list is empty."); } catch (IOException e) { log.error("Failed to parse uma permission request" + requestAsString, e); } return errorResponseFactory.throwUmaWebApplicationException(Response.Status.BAD_REQUEST, UmaErrorResponseType.INVALID_PERMISSION_REQUEST); } }
/** * Test for registering permissions for resource */ @Test public void testRegisterPermissionForInvalidResource() throws Exception { showTitle("testRegisterPermissionForInvalidResource"); UmaPermission permission = new UmaPermission(); permission.setResourceId(this.registerResourceTest.resourceId + "1"); permission.setScopes(Arrays.asList("http://photoz.example.com/dev/scopes/view", "http://photoz.example.com/dev/scopes/all")); PermissionTicket ticket = null; try { ticket = getPermissionService().registerPermission( "Bearer " + this.registerResourceTest.pat.getAccessToken(), UmaPermissionList.instance(permission)); } catch (ClientResponseFailure ex) { System.err.println(ex.getResponse().getEntity(String.class)); assertTrue(ex.getResponse().getStatus() != Response.Status.CREATED.getStatusCode() && ex.getResponse().getStatus() != Response.Status.OK.getStatusCode() , "Unexpected response status"); } assertNull(ticket, "Resource permission is not null"); } }
public String registerResourcePermission(String resourceId, List<String> scopes) throws Exception { UmaPermission permission = new UmaPermission(); permission.setResourceId(resourceId); permission.setScopes(scopes); PermissionTicket ticket = getPermissionService().registerPermission( "Bearer " + this.registerResourceTest.pat.getAccessToken(), UmaPermissionList.instance(permission)); UmaTestUtil.assert_(ticket); this.ticket = ticket.getTicket(); return ticket.getTicket(); }