diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderCustomProviderImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderCustomProviderImpl.java index 0edec977f..1ebf8c336 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderCustomProviderImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderCustomProviderImpl.java @@ -35,7 +35,9 @@ public class ConfigurableProviderCustomProviderImpl implements ConfigurableProvi Map values = template.postForObject(accessTokenUrl, request, Map.class); ConfigurableProviderResponseToken responseToken = new ConfigurableProviderResponseToken(); responseToken.setAccessToken((String) values.get(access_token)); - responseToken.setExpiresIn((Integer) values.get(expires_in)); + if (expires_in != null && !expires_in.isEmpty()) { + responseToken.setExpiresIn((Integer) values.get(expires_in)); + } return responseToken; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderUser.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderUser.java index f5a87e087..111abad14 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderUser.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/customproviders/ConfigurableProvider/ConfigurableProviderUser.java @@ -31,9 +31,12 @@ public class ConfigurableProviderUser { } ConfigurableProviderUser getConfigurableProviderUser(Map data, ConfigurableProviderUserSettings user) { - this.id = (String) data.get(user.getId()); - this.name = (String) data.get(user.getName()); - this.email = (String) data.get(user.getEmail()); + if (user.getId() != null && !user.getId().isEmpty()) + this.id = (String) data.get(user.getId()); + if (user.getName() != null && !user.getName().isEmpty()) + this.name = (String) data.get(user.getName()); + if (user.getEmail() != null && !user.getEmail().isEmpty()) + this.email = (String) data.get(user.getEmail()); return this; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/configurableProvider/ConfigurableProviderTokenValidator.java b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/configurableProvider/ConfigurableProviderTokenValidator.java index f4b9fa2e8..bf426f96e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/configurableProvider/ConfigurableProviderTokenValidator.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/security/validators/configurableProvider/ConfigurableProviderTokenValidator.java @@ -15,6 +15,7 @@ import eu.eudat.models.data.loginprovider.LoginProviderUser; import eu.eudat.models.data.security.Principal; import org.springframework.stereotype.Component; +import java.util.Map; import java.util.stream.Collectors; @Component("configurableProviderTokenValidator") @@ -38,7 +39,7 @@ public class ConfigurableProviderTokenValidator implements TokenValidator { } @Override public Principal validateToken(LoginInfo credentials) throws NullEmailException { - String configurableLoginId = (String) credentials.getData(); + String configurableLoginId = ((Map) credentials.getData()).get("configurableLoginId").toString(); ConfigurableProvider configurableProvider = getConfigurableProviderFromId(configurableLoginId); ConfigurableProviderUser configurableUser = this.configurableProvider.getUser(credentials.getTicket(), configurableProvider.getUser()); LoginProviderUser user = new LoginProviderUser(); diff --git a/dmp-backend/web/src/main/resources/configurableLoginProviders.json b/dmp-backend/web/src/main/resources/configurableLoginProviders.json index 5e759f521..ae519164b 100644 --- a/dmp-backend/web/src/main/resources/configurableLoginProviders.json +++ b/dmp-backend/web/src/main/resources/configurableLoginProviders.json @@ -17,7 +17,7 @@ "id": "sub", "name": "name", "email": "email", - "user_info_endpoint": "" + "user_info_url": "" }, "oauthUrl": "/authorize", "scope": "email",