use of io.gravitee.rest.api.model.configuration.application.ApplicationTypeEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationTypeServiceImpl method getFilteredApplicationTypes.
public ApplicationTypesEntity getFilteredApplicationTypes(JsonNode jsonTypes) {
ApplicationTypesEntity applicationTypesEntity = this.getApplicationTypesEntity();
List<ApplicationTypeEntity> filteredData = applicationTypesEntity.getData().stream().filter(typeEntity -> jsonTypes.get(typeEntity.getId()).get("enabled").asBoolean(false)).collect(Collectors.toList());
applicationTypesEntity.setData(filteredData);
return applicationTypesEntity;
}
use of io.gravitee.rest.api.model.configuration.application.ApplicationTypeEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationService_CreateTest method shouldNotCreateBecauseRedirectURIsNotFound.
@Test(expected = ApplicationRedirectUrisNotFound.class)
public void shouldNotCreateBecauseRedirectURIsNotFound() {
ApplicationSettings settings = new ApplicationSettings();
OAuthClientSettings clientSettings = new OAuthClientSettings();
clientSettings.setApplicationType("web");
clientSettings.setGrantTypes(Arrays.asList("foobar"));
settings.setoAuthClient(clientSettings);
ApplicationTypeEntity applicationType = mock(ApplicationTypeEntity.class);
ApplicationGrantTypeEntity foobar = new ApplicationGrantTypeEntity();
foobar.setType("foobar");
when(applicationType.getRequires_redirect_uris()).thenReturn(true);
when(applicationType.getAllowed_grant_types()).thenReturn(Arrays.asList(foobar));
when(applicationTypeService.getApplicationType(any())).thenReturn(applicationType);
when(newApplication.getSettings()).thenReturn(settings);
when(parameterService.findAsBoolean(Key.APPLICATION_REGISTRATION_ENABLED, "DEFAULT", ParameterReferenceType.ENVIRONMENT)).thenReturn(Boolean.TRUE);
when(parameterService.findAsBoolean(Key.APPLICATION_TYPE_WEB_ENABLED, "DEFAULT", ParameterReferenceType.ENVIRONMENT)).thenReturn(Boolean.TRUE);
applicationService.create(newApplication, USER_NAME);
}
use of io.gravitee.rest.api.model.configuration.application.ApplicationTypeEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationServiceImpl method checkClientSettings.
private void checkClientSettings(OAuthClientSettings oAuthClientSettings) {
if (oAuthClientSettings.getGrantTypes() == null || oAuthClientSettings.getGrantTypes().isEmpty()) {
throw new ApplicationGrantTypesNotFoundException();
}
ApplicationTypeEntity applicationType = applicationTypeService.getApplicationType(oAuthClientSettings.getApplicationType());
List<String> targetGrantTypes = oAuthClientSettings.getGrantTypes();
List<String> allowedGrantTypes = applicationType.getAllowed_grant_types().stream().map(applicationGrantTypeEntity -> applicationGrantTypeEntity.getType()).collect(toList());
if (!allowedGrantTypes.containsAll(targetGrantTypes)) {
throw new ApplicationGrantTypesNotAllowedException(oAuthClientSettings.getApplicationType(), targetGrantTypes);
}
List<String> redirectUris = oAuthClientSettings.getRedirectUris();
if (applicationType.getRequires_redirect_uris() && (redirectUris == null || redirectUris.isEmpty())) {
throw new ApplicationRedirectUrisNotFound();
}
List<String> responseTypes = applicationType.getAllowed_grant_types().stream().filter(applicationGrantTypeEntity -> targetGrantTypes.contains(applicationGrantTypeEntity.getType())).map(applicationGrantTypeEntity -> applicationGrantTypeEntity.getResponse_types()).flatMap(Collection::stream).distinct().collect(toList());
oAuthClientSettings.setResponseTypes(responseTypes);
}
use of io.gravitee.rest.api.model.configuration.application.ApplicationTypeEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationResource method getApplicationType.
@GET
@Path("configuration")
@Produces(MediaType.APPLICATION_JSON)
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.READ) })
public Response getApplicationType(@PathParam("applicationId") String applicationId) {
ApplicationEntity applicationEntity = applicationService.findById(applicationId);
ApplicationTypeEntity applicationType = applicationTypeService.getApplicationType(applicationEntity.getType());
return Response.ok(applicationType).build();
}
use of io.gravitee.rest.api.model.configuration.application.ApplicationTypeEntity in project gravitee-management-rest-api by gravitee-io.
the class ConfigurationResourceTest method shouldGetApplicationTypes.
@Test
public void shouldGetApplicationTypes() throws TechnicalException {
resetAllMocks();
ApplicationTypesEntity typesEntity = new ApplicationTypesEntity();
List<ApplicationTypeEntity> data = new ArrayList<>();
ApplicationTypeEntity simple = new ApplicationTypeEntity();
simple.setId("simple");
simple.setAllowed_grant_types(new ArrayList<>());
simple.setDefault_grant_types(new ArrayList<>());
simple.setMandatory_grant_types(new ArrayList<>());
simple.setName("Simple");
simple.setDescription("Simple type");
data.add(simple);
ApplicationTypeEntity web = new ApplicationTypeEntity();
web.setId("web");
List<ApplicationGrantTypeEntity> grantTypes = new ArrayList<>();
ApplicationGrantTypeEntity grantType = new ApplicationGrantTypeEntity();
grantType.setName("name");
List<String> responses_types = new ArrayList<>();
responses_types.add("token");
grantType.setResponse_types(responses_types);
grantTypes.add(grantType);
web.setAllowed_grant_types(grantTypes);
web.setDefault_grant_types(new ArrayList<>());
web.setMandatory_grant_types(new ArrayList<>());
web.setName("Web");
web.setDescription("Web type");
data.add(web);
typesEntity.setData(data);
when(applicationTypeService.getEnabledApplicationTypes()).thenReturn(typesEntity);
final Response response = target().path("applications").path("types").request().get();
assertEquals(HttpStatusCode.OK_200, response.getStatus());
final ConfigurationApplicationTypesResponse appTypes = response.readEntity(ConfigurationApplicationTypesResponse.class);
assertNotNull(appTypes);
@Valid List<ApplicationType> types = appTypes.getData();
assertNotNull(types);
assertEquals(2, types.size());
assertEquals("web", types.get(1).getId());
assertEquals(1, types.get(1).getAllowedGrantTypes().size());
}
Aggregations