Skip to content

Commit ec4b921

Browse files
author
jvanmalder
committed
1.4.2
1 parent cbdc838 commit ec4b921

File tree

109 files changed

+5835
-2435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+5835
-2435
lines changed

Jenkinsfile

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ pipeline {
1313
environment {
1414
VERSION = sh(returnStdout: true, script: 'gradle properties -q | grep "baseVersion:" | sed -E "s/baseVersion: (.*)/\\1/g"').trim()
1515
NS = 'openanalytics'
16-
REG = '196229073436.dkr.ecr.eu-west-1.amazonaws.com'
17-
TAG = 'develop'
1816
DOCKER_BUILDKIT = '1'
1917
}
2018

2119
stages {
22-
stage('build integration test images') {
20+
stage('build IT images and publish') {
2321
matrix {
2422
axes {
2523
axis {
@@ -28,16 +26,22 @@ pipeline {
2826
}
2927
}
3028
stages {
31-
stage('Docker build') {
29+
stage('build') {
3230
steps {
33-
withOARegistry {
34-
sh """
35-
docker build --build-arg BUILDKIT_INLINE_CACHE=1 \
36-
--cache-from ${env.REG}/${env.NS}/rdepot-${MODULE}-it:${env.TAG} \
37-
-t ${env.NS}/rdepot-${MODULE}-it:${env.TAG} \
38-
./src/integration-test/resources/docker/${MODULE}
39-
"""
40-
ecrPush "${env.REG}", "${env.NS}/rdepot-${MODULE}-it", "${env.TAG}", '', 'eu-west-1'
31+
sh """
32+
docker build --build-arg BUILDKIT_INLINE_CACHE=1 \
33+
--cache-from ${env.NS}/rdepot-${MODULE}-it:${env.VERSION} \
34+
-t ${env.NS}/rdepot-${MODULE}-it:${env.VERSION} \
35+
./src/integration-test/resources/docker/${MODULE}
36+
"""
37+
}
38+
}
39+
stage('publish') {
40+
steps {
41+
withDockerRegistry([
42+
credentialsId: "openanalytics-dockerhub",
43+
url: ""]) {
44+
sh "docker push ${env.NS}/rdepot-${MODULE}-it:${env.VERSION}"
4145
}
4246
}
4347
}
@@ -73,7 +77,7 @@ pipeline {
7377
}
7478
}
7579

76-
stage('build Docker images and publish') {
80+
stage('build app images and publish') {
7781
matrix {
7882
axes {
7983
axis {
@@ -82,28 +86,23 @@ pipeline {
8286
}
8387
}
8488
stages {
85-
stage('build Docker images') {
89+
stage('build') {
8690
steps {
87-
withOARegistry {
88-
sh """
89-
docker build --build-arg BUILDKIT_INLINE_CACHE=1 \
90-
--cache-from ${env.REG}/${env.NS}/rdepot-${MODULE}:${env.VERSION} \
91-
-t ${env.NS}/rdepot-${MODULE}:${env.VERSION} \
92-
-t ${env.NS}/rdepot-${MODULE}:latest \
93-
-f ./docker/build/${MODULE}-standalone/Dockerfile \
94-
./${MODULE}/build/libs
95-
"""
96-
ecrPush "${env.REG}", "${env.NS}/rdepot-${MODULE}", "${env.VERSION}", '', 'eu-west-1'
97-
ecrPush "${env.REG}", "${env.NS}/rdepot-${MODULE}", "latest", '', 'eu-west-1'
98-
}
91+
sh """
92+
docker build --build-arg BUILDKIT_INLINE_CACHE=1 \
93+
--cache-from ${env.NS}/rdepot-${MODULE}:${env.VERSION} \
94+
-t ${env.NS}/rdepot-${MODULE}:${env.VERSION} \
95+
-t ${env.NS}/rdepot-${MODULE}:latest \
96+
-f ./docker/build/${MODULE}-standalone/Dockerfile \
97+
./${MODULE}/build/libs
98+
"""
9999
}
100100
}
101101
stage('publish') {
102102
steps {
103103
withDockerRegistry([
104104
credentialsId: "openanalytics-dockerhub",
105105
url: ""]) {
106-
107106
sh "docker push ${env.NS}/rdepot-${MODULE}:${env.VERSION}"
108107
sh "docker push ${env.NS}/rdepot-${MODULE}:latest"
109108
}

app/src/main/java/eu/openanalytics/rdepot/Application.java

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
*/
2424
package eu.openanalytics.rdepot;
2525

26+
import java.util.ArrayList;
2627
import java.util.HashSet;
28+
import java.util.List;
2729

2830
import javax.annotation.Resource;
2931

@@ -51,16 +53,7 @@
5153
@SpringBootApplication
5254
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
5355
@EnableConfigurationProperties(KeycloakSpringBootProperties.class)
54-
public class Application extends SpringBootServletInitializer {
55-
56-
@Resource
57-
private Environment environment;
58-
59-
@Autowired
60-
private RepositoryService repositoryService;
61-
62-
@Value("${app.authentication}")
63-
private String mode;
56+
public class Application extends SpringBootServletInitializer {
6457

6558
/**
6659
* @param args
@@ -74,29 +67,31 @@ protected WebApplicationContext run(SpringApplication application) {
7467
// TODO Auto-generated method stub
7568
return super.run(application);
7669
}
77-
78-
@Bean
79-
InitializingBean createRepositoriesFromConfig() {
80-
return () -> {
81-
for(int i=0;;i++) {
82-
String repositoryName = environment.getProperty(String.format("repositories[%d].name", i));
83-
if(repositoryName == null) break;
84-
else {
85-
Repository repository = new Repository(
86-
0,
87-
environment.getProperty(String.format("repositories[%d].publication-uri", i)),
88-
environment.getProperty(String.format("repositories[%d].name", i)),
89-
environment.getProperty(String.format("repositories[%d].server-address", i)),
90-
false,
91-
false,
92-
new HashSet<>(),
93-
new HashSet<>(),
94-
new HashSet<>(),
95-
new HashSet<>()
96-
);
97-
repositoryService.createRepositoriesFromConfig(repository);
98-
}
99-
}
100-
};
101-
}
70+
//
71+
// @Bean
72+
// InitializingBean createRepositoriesFromConfig() {
73+
// return () -> {
74+
// List<Repository> repositories = new ArrayList<>();
75+
// for(int i=0;;i++) {
76+
// String repositoryName = environment.getProperty(String.format("repositories[%d].name", i));
77+
// if(repositoryName == null) break;
78+
// else {
79+
// Repository repository = new Repository(
80+
// 0,
81+
// environment.getProperty(String.format("repositories[%d].publication-uri", i)),
82+
// environment.getProperty(String.format("repositories[%d].name", i)),
83+
// environment.getProperty(String.format("repositories[%d].server-address", i)),
84+
// false,
85+
// false,
86+
// new HashSet<>(),
87+
// new HashSet<>(),
88+
// new HashSet<>(),
89+
// new HashSet<>()
90+
// );
91+
// repositories.add(repository);
92+
// }
93+
// }
94+
// repositoryService.createRepositoriesFromConfig(repositories);
95+
// };
96+
// }
10297
}

app/src/main/java/eu/openanalytics/rdepot/authenticator/KeycloakCustomBindAuthenticator.java

Lines changed: 46 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -21,36 +21,28 @@
2121
package eu.openanalytics.rdepot.authenticator;
2222

2323
import java.util.ArrayList;
24-
import java.util.Arrays;
2524
import java.util.Collection;
2625
import java.util.Date;
2726
import java.util.List;
28-
import java.util.Locale;
2927
import java.util.Objects;
3028

3129
import javax.annotation.Resource;
3230

3331
import org.keycloak.representations.AccessToken;
34-
import org.keycloak.representations.IDToken;
3532
import org.springframework.beans.factory.annotation.Autowired;
36-
import org.springframework.beans.factory.annotation.Value;
3733
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
38-
import org.springframework.context.MessageSource;
3934
import org.springframework.context.annotation.ComponentScan;
40-
import org.springframework.context.i18n.LocaleContextHolder;
4135
import org.springframework.core.env.Environment;
42-
import org.springframework.security.authentication.BadCredentialsException;
4336
import org.springframework.security.core.GrantedAuthority;
4437
import org.springframework.stereotype.Service;
4538

46-
import eu.openanalytics.rdepot.exception.AuthenticationDeletedUserException;
4739
import eu.openanalytics.rdepot.exception.AuthException;
40+
import eu.openanalytics.rdepot.exception.AuthenticationDeletedUserException;
4841
import eu.openanalytics.rdepot.exception.AuthenticationInactiveUserException;
4942
import eu.openanalytics.rdepot.exception.AuthenticationUserCreationException;
5043
import eu.openanalytics.rdepot.exception.AuthenticationUserEditionException;
5144
import eu.openanalytics.rdepot.exception.UserCreateException;
5245
import eu.openanalytics.rdepot.exception.UserEditException;
53-
import eu.openanalytics.rdepot.exception.UserNotFound;
5446
import eu.openanalytics.rdepot.model.Role;
5547
import eu.openanalytics.rdepot.model.User;
5648
import eu.openanalytics.rdepot.service.RoleService;
@@ -97,27 +89,43 @@ public Collection<? extends GrantedAuthority> authenticate(String username, Acce
9789

9890
User user = userService.findByLoginEvenDeleted(login);
9991

100-
if (user == null)
101-
{
102-
user = userService.findByEmailEvenDeleted(email);
92+
try {
10393
if (user == null)
10494
{
105-
user = new User();
106-
user.setLogin(login);
107-
if (defaultAdmins.contains(login))
108-
user.setRole(adminRole);
109-
else
110-
user.setRole(roleService.getUserRole());
111-
user.setName(name);
112-
user.setEmail(email);
113-
user.setActive(true);
114-
115-
try {
116-
userService.create(user);
117-
} catch (UserCreateException e) {
118-
throw new AuthenticationUserCreationException();
95+
user = userService.findByEmailEvenDeleted(email);
96+
if (user == null)
97+
{
98+
user = new User();
99+
user.setLogin(login);
100+
if (defaultAdmins.contains(login))
101+
user.setRole(adminRole);
102+
else
103+
user.setRole(roleService.getUserRole());
104+
user.setName(name);
105+
user.setEmail(email);
106+
user.setActive(true);
107+
108+
try {
109+
userService.create(user);
110+
} catch (UserCreateException e) {
111+
throw new AuthenticationUserCreationException();
112+
}
119113
}
120-
}
114+
else if(!user.isActive())
115+
{
116+
throw new AuthenticationInactiveUserException();
117+
}
118+
else if(user.isDeleted())
119+
{
120+
throw new AuthenticationDeletedUserException();
121+
}
122+
else
123+
{
124+
userService.updateLogin(user, null, login);
125+
if(!Objects.equals(name, user.getName()))
126+
userService.updateName(user, null, name);
127+
}
128+
}
121129
else if(!user.isActive())
122130
{
123131
throw new AuthenticationInactiveUserException();
@@ -128,37 +136,20 @@ else if(user.isDeleted())
128136
}
129137
else
130138
{
131-
user.setLogin(login);
132139
if(!Objects.equals(name, user.getName()))
133-
user.setName(name);
134-
}
135-
}
136-
else if(!user.isActive())
137-
{
138-
throw new AuthenticationInactiveUserException();
139-
}
140-
else if(user.isDeleted())
141-
{
142-
throw new AuthenticationDeletedUserException();
143-
}
144-
else
145-
{
146-
if(!Objects.equals(name, user.getName()))
147-
user.setName(name);
148-
if(!Objects.equals(email, user.getEmail()))
149-
user.setEmail(email);
150-
if (defaultAdmins.contains(login) && !user.getRole().equals(adminRole))
151-
user.setRole(adminRole);
152-
}
153-
user.setLastLoggedInOn(new Date());
154-
try
155-
{
156-
userService.evaluateAndUpdate(user, null);
157-
}
158-
catch (UserEditException | UserNotFound e)
159-
{
140+
userService.updateName(user, null, name);
141+
if(!Objects.equals(email, user.getEmail()))
142+
userService.updateEmail(user, null, email);
143+
if (defaultAdmins.contains(login) && !user.getRole().equals(adminRole))
144+
userService.updateRole(user, null, adminRole);
145+
}
146+
147+
userService.updateLastLoggedInOn(user, null, new Date());
148+
} catch(UserEditException e) {
160149
throw new AuthenticationUserEditionException();
161150
}
151+
152+
162153
return userService.getGrantedAuthorities(login);
163154
}
164155
}

0 commit comments

Comments
 (0)