WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
.withHeader(
- "location",
- String.format("/admin/realms/%s/users/%s", realm, userId))));
+ "location", String.format("/admin/realms/%s/users/%s", realm, userId))));
}
protected void mockGetUser(String userId, UserKeycloakDto response) throws Exception {
WireMock.stubFor(
WireMock.get(
- WireMock.urlMatching(
- String.format("/admin/realms/%s/users/%s", realm, userId)))
+ WireMock.urlMatching(String.format("/admin/realms/%s/users/%s", realm, userId)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.post(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/%s/role-mappings/realm", realm, userId)))
+ String.format("/admin/realms/%s/users/%s/role-mappings/realm", realm, userId)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
+ String.format("/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
+ String.format("/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
protected void mockGetUserCount(Integer userCount) {
WireMock.stubFor(
- WireMock.get(
- WireMock.urlMatching(String.format("/admin/realms/%s/users/count", realm)))
+ WireMock.get(WireMock.urlMatching(String.format("/admin/realms/%s/users/count", realm)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users\\?first=%s&max=%s", realm, first, max)))
+ String.format("/admin/realms/%s/users\\?first=%s&max=%s", realm, first, max)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users\\?first=%s&max=%s", realm, first, max)))
+ String.format("/admin/realms/%s/users\\?first=%s&max=%s", realm, first, max)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.inScenario("test")
.whenScenarioStateIs(Scenario.STARTED)
.willReturn(
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.inScenario("test")
.whenScenarioStateIs(Scenario.STARTED)
.willReturn(
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.inScenario("test")
.whenScenarioStateIs(Scenario.STARTED)
.willReturn(
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
+ String.format("/admin/realms/%s/users/1/role-mappings/realm/available", realm)))
.inScenario("test")
.whenScenarioStateIs(Scenario.STARTED)
.willReturn(
protected void mockUpdateUser(UserKeycloakDto request, String userId) throws Exception {
WireMock.stubFor(
WireMock.put(
- WireMock.urlMatching(
- String.format("/admin/realms/%s/users/%s", realm, userId)))
+ WireMock.urlMatching(String.format("/admin/realms/%s/users/%s", realm, userId)))
.withRequestBody(WireMock.equalTo(objectMapper.writeValueAsString(request)))
.willReturn(
WireMock.aResponse().withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)));
protected void mockGetUser(String userId, UserKeycloakDto response) throws Exception {
WireMock.stubFor(
WireMock.get(
- WireMock.urlMatching(
- String.format("/admin/realms/%s/users/%s", realm, userId)))
+ WireMock.urlMatching(String.format("/admin/realms/%s/users/%s", realm, userId)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
WireMock.stubFor(
WireMock.get(
WireMock.urlMatching(
- String.format(
- "/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
+ String.format("/admin/realms/%s/users/%s/role-mappings/realm", realm, userID)))
.willReturn(
WireMock.aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
-bff.access-control:
- ACTIONS_CREATE: [ portal_admin, portal_designer, portal_operator ]
- ACTIONS_GET: [ portal_admin, portal_designer, portal_operator ]
- ACTIONS_LIST: [ portal_admin, portal_designer, portal_operator ]
- ACTIVE_ALARM_LIST: [portal_admin, portal_designer, portal_operator]
- KEY_ENCRYPT_BY_USER: [portal_admin, portal_designer, portal_operator]
- KEY_ENCRYPT_BY_VALUE: [portal_admin, portal_designer, portal_operator]
- PREFERENCES_CREATE: [portal_admin, portal_designer, portal_operator]
- PREFERENCES_GET: [portal_admin, portal_designer, portal_operator]
- PREFERENCES_UPDATE: [portal_admin, portal_designer, portal_operator]
- ROLE_LIST: ["*"]
- USER_CREATE: [portal_admin, portal_designer, portal_operator]
- USER_DELETE: [portal_admin, portal_designer, portal_operator]
- USER_GET: [portal_admin, portal_designer, portal_operator]
- USER_LIST_AVAILABLE_ROLES: [portal_admin, portal_designer, portal_operator]
- USER_LIST_ROLES: [portal_admin, portal_designer, portal_operator]
- USER_LIST: [portal_admin, portal_designer, portal_operator]
- USER_UPDATE_PASSWORD: [portal_admin, portal_designer, portal_operator]
- USER_UPDATE_ROLES: [portal_admin, portal_designer, portal_operator]
- USER_UPDATE: [portal_admin, portal_designer, portal_operator]
+bff:
+ access-control:
+ ACTIONS_CREATE: [ portal_admin, portal_designer, portal_operator ]
+ ACTIONS_GET: [ portal_admin, portal_designer, portal_operator ]
+ ACTIONS_LIST: [ portal_admin, portal_designer, portal_operator ]
+ ACTIVE_ALARM_LIST: [portal_admin, portal_designer, portal_operator]
+ KEY_ENCRYPT_BY_USER: [portal_admin, portal_designer, portal_operator]
+ KEY_ENCRYPT_BY_VALUE: [portal_admin, portal_designer, portal_operator]
+ PREFERENCES_CREATE: [portal_admin, portal_designer, portal_operator]
+ PREFERENCES_GET: [portal_admin, portal_designer, portal_operator]
+ PREFERENCES_UPDATE: [portal_admin, portal_designer, portal_operator]
+ ROLE_LIST: ["*"]
+ USER_CREATE: [portal_admin, portal_designer, portal_operator]
+ USER_DELETE: [portal_admin, portal_designer, portal_operator]
+ USER_GET: [portal_admin, portal_designer, portal_operator]
+ USER_LIST_AVAILABLE_ROLES: [portal_admin, portal_designer, portal_operator]
+ USER_LIST_ROLES: [portal_admin, portal_designer, portal_operator]
+ USER_LIST: [portal_admin, portal_designer, portal_operator]
+ USER_UPDATE_PASSWORD: [portal_admin, portal_designer, portal_operator]
+ USER_UPDATE_ROLES: [portal_admin, portal_designer, portal_operator]
+ USER_UPDATE: [portal_admin, portal_designer, portal_operator]
}
group 'org.onap.portal-ng'
-version rootProject.file('version').text.trim()
+version getAppVersion()
dependencies {
implementation project(':openapi:server')
ignoreFailures = false
reportLevel = "high"
excludeFilter = file("$rootProject.projectDir/spotbugs-exclude.xml")
-}
\ No newline at end of file
+}
+
+def String getAppVersion() {
+ Properties versionProperties = getVersionProperties()
+ String major = versionProperties.getProperty('major')
+ String minor = versionProperties.getProperty('minor')
+ String patch = versionProperties.getProperty('patch')
+ return major + '.' + minor + '.' + patch
+}
+def Properties getVersionProperties() {
+ def versionProperties = new Properties()
+ rootProject.file('version.properties').withInputStream {
+ versionProperties.load(it)
+ }
+ return versionProperties
+}
import lombok.extern.slf4j.Slf4j;
import org.onap.portalng.bff.exceptions.DownstreamApiProblemException;
import org.onap.portalng.bff.utils.Logger;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.codec.ClientCodecConfigurer;
"logRequestExchangeFilterFunction";
public static final String LOG_RESPONSE_EXCHANGE_FILTER_FUNCTION =
"logResponseExchangeFilterFunction";
- private static final String CLIENT_REGISTRATION_ID = "keycloak";
public static final String X_REQUEST_ID = "X-Request-Id";
+ private static final String CLIENT_REGISTRATION_ID = "keycloak";
+ private static final ObjectMapper objectMapper = new ObjectMapper();
+
@Bean(name = OAUTH2_EXCHANGE_FILTER_FUNCTION)
ExchangeFilterFunction oauth2ExchangeFilterFunction(
ReactiveOAuth2AuthorizedClientManager authorizedClientManager) {
downstreamExceptionBody -> {
try {
return Mono.error(
- new ObjectMapper()
- .readValue(
- downstreamExceptionBody, DownstreamApiProblemException.class));
+ objectMapper.readValue(
+ downstreamExceptionBody, DownstreamApiProblemException.class));
} catch (JsonProcessingException e) {
return Mono.error(DownstreamApiProblemException.builder().build());
}
}
@Bean
- ExchangeStrategies exchangeStrategies(ObjectMapper objectMapper) {
+ ExchangeStrategies exchangeStrategies(@Qualifier("objectMapper") ObjectMapper objectMapper) {
return ExchangeStrategies.builder()
.codecs(
configurer -> {
}
dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-webflux'
- implementation "org.openapitools:openapi-generator:$openapiVersion"
+ compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
+ compileOnly "org.openapitools:openapi-generator:$openapiVersion"
}
openApiGenerate {
}
dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-webflux'
- implementation "org.openapitools:openapi-generator:$openapiVersion"
+ compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
+ compileOnly "org.openapitools:openapi-generator:$openapiVersion"
}
openApiGenerate {
}
dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-webflux'
- implementation "org.openapitools:openapi-generator:$openapiVersion"
+ compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
+ compileOnly "org.openapitools:openapi-generator:$openapiVersion"
}
openApiGenerate {
}
dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-webflux'
- implementation "org.openapitools:openapi-generator:$openapiVersion"
+ compileOnly 'org.springframework.boot:spring-boot-starter-webflux'
+ compileOnly "org.openapitools:openapi-generator:$openapiVersion"
// implementation 'jakarta.validation:jakarta.validation-api:3.0.2'
constraints {
- implementation('io.swagger.core.v3:swagger-annotations:2.2.5') {
+ compileOnly('io.swagger.core.v3:swagger-annotations:2.2.5') {
because 'there is a dependency conflict between swagger-parser versions 2 and 3 (https://github.com/OpenAPITools/openapi-generator/issues/14901)'
}
}
# because they are used in Jenkins, whose plug-in doesn't support\r
\r
major=0\r
-minor=0\r
-patch=9\r
+minor=1\r
+patch=0\r
\r
base_version=${major}.${minor}.${patch}\r
\r