Skip to content

Commit

Permalink
Merge pull request #49 from CaritasDeutschland/feature-update-spring-…
Browse files Browse the repository at this point in the history
…boot-and-dependencies

Feature update spring boot and dependencies
  • Loading branch information
pago4b authored Nov 3, 2020
2 parents 7a455c0 + 6dad8c1 commit 9fd86bd
Show file tree
Hide file tree
Showing 13 changed files with 117 additions and 149 deletions.
116 changes: 48 additions & 68 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<version>2.3.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

Expand All @@ -25,7 +25,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<skip.unit-tests>false</skip.unit-tests>
<skip.integration-tests>false</skip.integration-tests>
<skip.integration-tests>false</skip.integration-tests>
</properties>

<dependencies>
Expand Down Expand Up @@ -56,6 +56,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.6.Final</version>
</dependency>

<!-- Swagger/OpenAPI dependencies -->

Expand Down Expand Up @@ -104,16 +109,6 @@
<artifactId>keycloak-admin-client</artifactId>
<version>4.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.1.4.Final</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
Expand All @@ -131,76 +126,34 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
<version>3.11</version>
</dependency>

<!-- Apache Commons Text -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.6</version>
<version>1.9</version>
</dependency>

<!-- Commons Validator -->
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.6</version>
<version>1.7</version>
</dependency>

<!-- Commons Codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
<version>1.15</version>
</dependency>

<!-- Liquibase -->
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>3.6.3</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.6.3</version>
</dependency>

<!-- Test scope dependencies -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>powermock-module-junit4</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>2.0.2</version>
</dependency>
<dependency>
<artifactId>powermock-api-mockito2</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>2.0.2</version>
<version>4.1.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
Expand All @@ -218,12 +171,12 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.6</version>
<version>1.8</version>
</dependency>
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.3.1</version>
<version>1.6.0</version>
</dependency>

<dependency>
Expand All @@ -234,7 +187,36 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.4.RELEASE</version>
<version>5.2.10.RELEASE</version>
</dependency>

<!-- Test scope dependencies -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>powermock-module-junit4</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>2.0.2</version>
</dependency>
<dependency>
<artifactId>powermock-api-mockito2</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>2.0.2</version>
</dependency>
</dependencies>

Expand Down Expand Up @@ -350,11 +332,9 @@
<generatorName>java</generatorName>
<generateApis>true</generateApis>
<generateApiTests>false</generateApiTests>
<apiPackage>${project.groupId}.${project.artifactId}.liveservice.generated.web
</apiPackage>
<modelPackage>
${project.groupId}.${project.artifactId}.liveservice.generated.web.model
</modelPackage>
<generateModelTests>false</generateModelTests>
<apiPackage>${project.groupId}.${project.artifactId}.liveservice.generated.web</apiPackage>
<modelPackage>${project.groupId}.${project.artifactId}.liveservice.generated.web.model</modelPackage>
</configuration>
</execution>
</executions>
Expand All @@ -363,7 +343,7 @@
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.6.3</version>
<version>4.1.1</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
package de.caritas.cob.userservice.api.helper;

import de.caritas.cob.userservice.api.exception.HelperException;
import de.caritas.cob.userservice.api.exception.SaveUserException;
import de.caritas.cob.userservice.api.repository.chat.Chat;
import de.caritas.cob.userservice.api.repository.session.ConsultingType;
import de.caritas.cob.userservice.api.repository.user.User;
import de.caritas.cob.userservice.api.service.UserService;
import de.caritas.cob.userservice.api.service.helper.KeycloakAdminClientHelper;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.codec.binary.Base32;
Expand All @@ -13,12 +19,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import de.caritas.cob.userservice.api.exception.HelperException;
import de.caritas.cob.userservice.api.repository.chat.Chat;
import de.caritas.cob.userservice.api.repository.session.ConsultingType;
import de.caritas.cob.userservice.api.repository.user.User;
import de.caritas.cob.userservice.api.service.UserService;
import de.caritas.cob.userservice.api.service.helper.KeycloakAdminClientHelper;

@Component
public class UserHelper {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package de.caritas.cob.userservice.api.model.jsonDeserializer;

import java.io.IOException;
import javax.ws.rs.BadRequestException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import de.caritas.cob.userservice.api.exception.httpresponses.BadRequestException;
import de.caritas.cob.userservice.api.helper.UserHelper;
import java.io.IOException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class EncodeUsernameJsonDeserializer extends JsonDeserializer<String> {
Expand All @@ -20,7 +19,7 @@ public class EncodeUsernameJsonDeserializer extends JsonDeserializer<String> {

@Override
public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
throws IOException, JsonProcessingException {
throws IOException {
String username = userHelper.encodeUsername(jsonParser.getValueAsString());

// Check if username is of valid length
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static org.apache.commons.lang3.BooleanUtils.isTrue;

import de.caritas.cob.userservice.api.exception.httpresponses.InternalServerErrorException;
import de.caritas.cob.userservice.api.exception.rocketchat.RocketChatRemoveUserFromGroupException;
import java.io.FileNotFoundException;
import java.io.FileReader;
Expand All @@ -22,7 +23,6 @@
import org.apache.commons.csv.CSVRecord;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.validator.routines.EmailValidator;
import org.jboss.resteasy.spi.InternalServerErrorException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -96,7 +96,7 @@ public void startImport() {
in = new FileReader(importFilename);
records = CSVFormat.DEFAULT.parse(in);
} catch (Exception exception) {
throw new InternalServerErrorException(exception);
throw new InternalServerErrorException(exception.getMessage());
}

for (CSVRecord record : records) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package de.caritas.cob.userservice.config;

import de.caritas.cob.userservice.api.authorization.Authority;
import de.caritas.cob.userservice.api.authorization.RoleAuthorizationAuthorityMapper;
import de.caritas.cob.userservice.filter.StatelessCsrfFilter;
import org.keycloak.adapters.KeycloakConfigResolver;
import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
Expand All @@ -14,16 +17,12 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.authentication.session.NullAuthenticatedSessionStrategy;
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
import org.springframework.security.web.csrf.CsrfFilter;
import de.caritas.cob.userservice.api.authorization.Authority;
import de.caritas.cob.userservice.api.authorization.RoleAuthorizationAuthorityMapper;
import de.caritas.cob.userservice.filter.StatelessCsrfFilter;

/**
* Provides the Keycloak/Spring Security configuration.
Expand All @@ -41,9 +40,6 @@ public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
@Value("${csrf.header.property}")
private String csrfHeaderProperty;

@Autowired
private Environment environment;

/**
* Processes HTTP requests and checks for a valid spring security authentication for the
* (Keycloak) principal (authorization header).
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/application-testing.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Testing profile for unit tests
spring.main.allow-bean-definition-overriding=true

# Logging: SLF4J (via Lombok)
logging.level.root=INFO
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

# Currently active profile
spring.profiles.active=@activeSpringProfile@
spring.main.allow-bean-definition-overriding=true

# General app settings
server.port=8080
Expand All @@ -14,7 +15,7 @@ spring.jackson.time-zone=Europe/Berlin
service.encryption.appkey=

# Logging: SLF4J (via Lombok)
logging.file=log/userservice.log
logging.file.name=log/userservice.log

# Base URL of the application
app.base.url=https://<host>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import de.caritas.cob.userservice.api.authorization.RoleAuthorizationAuthorityMapper;
import de.caritas.cob.userservice.api.service.liveevents.LiveEventNotificationService;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -32,6 +33,9 @@ public class LiveProxyControllerIT {
@MockBean
private LiveEventNotificationService liveEventNotificationService;

@MockBean
private RoleAuthorizationAuthorityMapper roleAuthorizationAuthorityMapper;

@Test
public void sendLiveEvent_Should_returnBadRequest_When_rcGroupIdIsNotProvided() throws Exception {
this.mockMvc.perform(post(LIVE_EVENT_PATH))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.caritas.cob.userservice.api.authorization.Authority;
import de.caritas.cob.userservice.api.authorization.RoleAuthorizationAuthorityMapper;
import de.caritas.cob.userservice.api.authorization.UserRole;
import de.caritas.cob.userservice.api.exception.httpresponses.ConflictException;
import de.caritas.cob.userservice.api.exception.httpresponses.ForbiddenException;
Expand Down Expand Up @@ -193,7 +194,7 @@

@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
@AutoConfigureMockMvc(secure = false)
@AutoConfigureMockMvc(addFilters = false)
@TestPropertySource(properties = "spring.profiles.active=testing")
public class UserControllerIT {

Expand Down Expand Up @@ -373,6 +374,8 @@ ConsultingType.SUCHT, POSTCODE, AGENCY_ID, SessionStatus.IN_PROGRESS, new Date()
private CreateUserFacade createUserFacade;
@MockBean
private CreateSessionFacade createSessionFacade;
@MockBean
private RoleAuthorizationAuthorityMapper roleAuthorizationAuthorityMapper;

@Mock
private Logger logger;
Expand Down
Loading

0 comments on commit 9fd86bd

Please sign in to comment.