Skip to content
Snippets Groups Projects

Extend conditions for saml token

Merged Patryk Kazimierowski requested to merge extend-conditions-for-saml-token into release/1.7.1
1 file
+ 10
16
Compare changes
  • Side-by-side
  • Inline
@@ -51,14 +51,15 @@ public class OidcUserServiceImpl implements OidcUserService {
@@ -51,14 +51,15 @@ public class OidcUserServiceImpl implements OidcUserService {
.existsBySamlToken(oidcUserSub);
.existsBySamlToken(oidcUserSub);
boolean existUserByUsernameAsSamlToken = userService
boolean existUserByUsernameAsSamlToken = userService
.existsBySamlToken(oidcUserPreferredUsername);
.existsBySamlToken(oidcUserPreferredUsername);
boolean existUserByEmail = userService
boolean existsUserBySamlTokenAsEmail = userService
.existsByEmail(oidcUserEmail);
.existsBySamlToken(oidcUserEmail);
if (existUserBySamlToken) {
if (existUserBySamlToken) {
return userService
return userService
.findBySamlToken(oidcUserSub)
.findBySamlToken(oidcUserSub)
.orElseThrow();
.orElseThrow();
} else if (existUserByUsernameAsSamlToken) {
} else if (existUserByUsernameAsSamlToken
 
|| existsUserBySamlTokenAsEmail) {
User user = userService
User user = userService
.findBySamlToken(oidcUserPreferredUsername)
.findBySamlToken(oidcUserPreferredUsername)
.orElseThrow();
.orElseThrow();
@@ -71,7 +72,7 @@ public class OidcUserServiceImpl implements OidcUserService {
@@ -71,7 +72,7 @@ public class OidcUserServiceImpl implements OidcUserService {
+ oidcUserPreferredUsername
+ oidcUserPreferredUsername
+ " does not match internal user ");
+ " does not match internal user ");
}
}
} else {
} else {
return registerNewUser(oidcUser);
return registerNewUser(oidcUser);
}
}
}
}
@@ -116,20 +117,13 @@ public class OidcUserServiceImpl implements OidcUserService {
@@ -116,20 +117,13 @@ public class OidcUserServiceImpl implements OidcUserService {
@Override
@Override
public boolean externalUserRequiredLinking(OidcUser oidcUser) {
public boolean externalUserRequiredLinking(OidcUser oidcUser) {
String oidcUserSub = oidcUser.getAttribute("sub");
String oidcUserEmail = oidcUser.getAttribute("email");
String oidcUserEmail = oidcUser.getAttribute("email");
String oidcUserPreferredUsername = oidcUser.getAttribute("preferred_username");
boolean existUserBySamlToken = userService
.existsBySamlToken(oidcUserSub);
boolean existUserByUsernameAsSamlToken = userService
.existsBySamlToken(oidcUserPreferredUsername);
boolean existUserByEmail = userService
.existsByEmail(oidcUserEmail);
if(existUserBySamlToken || existUserByUsernameAsSamlToken) {
if(userService.existsByEmail(oidcUserEmail)){
return false;
User user = userService.findByEmail(oidcUserEmail);
}else return existUserByEmail;
return user.getSamlToken() == null || user.getSamlToken().isEmpty();
 
}
 
return false;
}
}
@Override
@Override
Loading