Skip to content
Snippets Groups Projects
Commit 67b78fca authored by OZGCloud's avatar OZGCloud
Browse files

Merge branch 'master' into OZG-4320-Angular-Upgrade

# Conflicts:
#	goofy-client/package.json
parents b6a8711a 85df8bbe
No related branches found
No related tags found
No related merge requests found
......@@ -132,16 +132,6 @@
<artifactId>mapstruct</artifactId>
</dependency>
<!-- aspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<!-- Dev -->
<dependency>
<groupId>org.projectlombok</groupId>
......
......@@ -19,8 +19,7 @@ class VorgangProperties {
public static final String PREFIX = "ozgcloud.vorgang";
/**
* Konfiguriert für welche Art von Anträgen der Button zur Erstellung von Bescheiden angezeigt wird. Der Art eines Antrags wird basierend auf form
* id und form engine name bestimmt.
* List of Vorgänge for which notices can be issued.
*/
private List<VorgangProperty> bescheid = Collections.emptyList();
......@@ -29,7 +28,13 @@ class VorgangProperties {
@Getter
static class VorgangProperty {
/**
* ID of the received formular
*/
private String formId;
/**
* Name of the form engine providing the used formular
*/
private String formEngineName;
}
......
......@@ -30,7 +30,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.function.Predicate;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.Link;
......@@ -67,9 +66,6 @@ class VorgangWithEingangProzessor implements RepresentationModelProcessor<Entity
static final String USER_PROFILE_SEARCH_DELETED_PARAM = "deleted";
static final String USER_PROFILE_SEARCH_ORGANISATIONS_EINHEIT_ID_PARAM = "organisationsEinheitId";
private static final Predicate<EingangHeader> HAS_FORM_ID_WITH_ENGINE_NAME =
eingangHeader -> ObjectUtils.allNotNull(eingangHeader.getFormEngineName(), eingangHeader.getFormId());
@Autowired
private PostfachMailController postfachMailController;
@Autowired
......@@ -148,16 +144,15 @@ class VorgangWithEingangProzessor implements RepresentationModelProcessor<Entity
boolean hasVorgangCreateBescheidEnabled(VorgangWithEingang vorgang) {
return ofNullable(vorgang.getEingang())
.map(Eingang::getHeader)
.filter(HAS_FORM_ID_WITH_ENGINE_NAME)
.map(this::isCreateBescheidEnabled)
.orElse(false);
}
private boolean isCreateBescheidEnabled(EingangHeader eingangHeader) {
return vorgangProperties.getBescheid().stream().filter(prop -> isFormIdAndFormEngineNameMatching(eingangHeader, prop)).count() > 0;
return vorgangProperties.getBescheid().stream().anyMatch(prop -> isFormIdAndFormEngineNameMatching(eingangHeader, prop));
}
private boolean isFormIdAndFormEngineNameMatching(EingangHeader eingangHeader, VorgangProperty prop) {
return prop.getFormId().equals(eingangHeader.getFormId()) && prop.getFormEngineName().equals(eingangHeader.getFormEngineName());
private boolean isFormIdAndFormEngineNameMatching(EingangHeader eingangHeader, VorgangProperty property) {
return property.getFormId().equals(eingangHeader.getFormId()) && property.getFormEngineName().equals(eingangHeader.getFormEngineName());
}
}
\ No newline at end of file
......@@ -151,7 +151,7 @@ pipeline {
script {
FAILED_STAGE = env.STAGE_NAME
configFileProvider([configFile(fileId: 'kubeconfig-ovh-cluster', variable: 'KUBE_CONFIG')]) {
configFileProvider([configFile(fileId: 'kubeconfig-dev-okd-cluster', variable: 'KUBE_CONFIG')]) {
sh 'mkdir ~/.kube'
sh 'cp ${KUBE_CONFIG} ~/.kube/config'
}
......@@ -705,7 +705,7 @@ Map getUserManagerDatabaseSecret(String namespace) {
String getKeycloakUuid(realm, userName) {
def shScript = """curl -H 'Content-Type: application/json' \
-H 'Authorization: bearer ${getKeycloakAccessToken()}' \
-H 'Authorization: bearer ${getKeycloakAccessToken(realm)}' \
'https://${env.SSO_URL}/admin/realms/${realm}/users'
"""
......@@ -720,12 +720,21 @@ String getKeycloakUuid(realm, userName) {
}
}
String getKeycloakAccessToken() {
withCredentials([usernamePassword(credentialsId: 'keycloak-ovh-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" https://$SSO_URL/realms/master/protocol/openid-connect/token', returnStdout: true)
String getKeycloakAccessToken(String realm) {
userManagerApiUserCredentials = getUserManagerApiUserCredentials(realm)
def token = readJSON text: sh (script: "set +x && curl -d \"client_id=admin-cli\" -d \"username=${userManagerApiUserCredentials.user}\" -d \"password=${userManagerApiUserCredentials.password}\" -d \"grant_type=password\" https://$SSO_URL/realms/$realm/protocol/openid-connect/token", returnStdout: true)
return token.access_token
}
Map getUserManagerApiUserCredentials(String namespace) {
userManagerApiUserCredentials = readJSON ( text: sh (script: "kubectl get secret usermanagerapiuser-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true))
return [
"user": decodeString(userManagerApiUserCredentials.name),
"password": decodeString(userManagerApiUserCredentials.password)
]
}
Void sendFailureMessage() {
......
kop:
bezeichner: mastere2eea
environment: dev
e2eTest: true
project:
destinations:
- namespace: '*'
server: https://kubernetes.default.svc
goofy:
env:
overrideSpringProfiles: "oc,ea,e2e,dev"
......@@ -14,6 +18,7 @@ goofy:
- name: EINHEITLICHER_ANSPRECHPARTNER
ingress:
use_staging_cert: true
className: openshift-default
baseUrl: dev.by.ozg-cloud.de
pluto:
......@@ -45,3 +50,7 @@ user_manager:
- name: realm-management
role: manage-users
baseUrl: dev.by.ozg-cloud.de
ingress:
use_staging_cert: true
className: openshift-default
\ No newline at end of file
kop:
bezeichner: mastere2emain
environment: dev
e2eTest: true
project:
destinations:
- namespace: '*'
server: https://kubernetes.default.svc
goofy:
env:
overrideSpringProfiles: "oc,e2e,dev"
......@@ -10,6 +14,7 @@ goofy:
apiPassword: "Test1234!"
ingress:
use_staging_cert: true
className: openshift-default
baseUrl: dev.by.ozg-cloud.de
pluto:
......@@ -41,3 +46,7 @@ user_manager:
- name: realm-management
role: manage-users
baseUrl: dev.by.ozg-cloud.de
ingress:
use_staging_cert: true
className: openshift-default
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
......@@ -35,6 +36,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- aspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
</dependencies>
<build>
......@@ -87,11 +98,13 @@
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/classes/META-INF/resources</outputDirectory>
${project.build.directory}/classes/META-INF/resources
</outputDirectory>
<resources>
<resource>
<directory>
../${project.parent.artifactId}-client/dist/apps/goofy/</directory>
../${project.parent.artifactId}-client/dist/apps/goofy/
</directory>
</resource>
</resources>
</configuration>
......
package de.ozgcloud.alfa.logging;
import org.aspectj.lang.annotation.Pointcut;
public class AlfaAspectPointcuts {
@Pointcut("execution(public * *(..))")
void anyPublicMethods() {
// aspect pointcut - no implementation needed
}
@Pointcut("within(de.ozgcloud..*)")
void anythingInOzgCloud() {
// aspect pointcut - no implementation needed
}
@Pointcut("anyPublicMethods() && anythingInOzgCloud()")
void anyPublicMethodInOzgCloud() {
// aspect pointcut - no implementation needed
}
@Pointcut("anyPublicMethodInOzgCloud() && @target(org.springframework.stereotype.Service)")
void anyPublicServiceMethod() {
// aspect pointcut - no implementation needed
}
@Pointcut("anyPublicMethodInOzgCloud() && @target(org.springframework.web.bind.annotation.RestController)")
void anyPublicRestControllerMethod() {
// aspect pointcut - no implementation needed
}
}
package de.ozgcloud.alfa.logging;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
import de.itvsh.kop.common.logging.AspectLoggingUtils;
@Aspect
@Component
public class AlfaLoggingAspect extends AlfaAspectPointcuts {
@Before("anyPublicServiceMethod() || anyPublicRestControllerMethod()")
public void onLoggedMethod(JoinPoint joinPoint) {
AspectLoggingUtils.log(joinPoint);
}
@AfterThrowing(pointcut = "anyPublicServiceMethod() || anyPublicRestControllerMethod()", throwing = "ex")
public void afterExceptionInLoggedMethod(JoinPoint joinPoint, Exception ex) {
AspectLoggingUtils.logException(joinPoint, ex);
}
@AfterReturning(pointcut = "anyPublicServiceMethod() || anyPublicRestControllerMethod()", returning = "returnValue")
public void afterLoggedMethod(JoinPoint joinPoint, Object returnValue) {
AspectLoggingUtils.logReturnValue(joinPoint, returnValue);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment