use of org.orcid.persistence.jpa.entities.ClientRedirectUriEntity in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerImpl method updateClientDetailsEntityFromClient.
/**
* Updates an existing profile entity with the information that comes in a
* OrcidClient
*
* @param client
* The OrcidClient that contains the new information
* @param clientDetailsEntity
* The client profile entity that will be updated
* @param isUpdate
* Indicates if this will be an update or is a new client
*/
private void updateClientDetailsEntityFromClient(OrcidClient client, ClientDetailsEntity clientDetailsEntity, boolean isUpdate) {
clientDetailsEntity.setClientType(client.getType());
clientDetailsEntity.setClientName(client.getDisplayName());
clientDetailsEntity.setClientDescription(client.getShortDescription());
clientDetailsEntity.setClientWebsite(client.getWebsite());
clientDetailsEntity.setPersistentTokensEnabled(client.isPersistentTokenEnabled());
clientDetailsEntity.setAuthenticationProviderId(client.getIdp());
clientDetailsEntity.setAllowAutoDeprecate(client.getAllowAutoDeprecate());
Set<ClientRedirectUriEntity> clientRedirectUriEntities = clientDetailsEntity.getClientRegisteredRedirectUris();
Map<String, ClientRedirectUriEntity> clientRedirectUriEntitiesMap = ClientRedirectUriEntity.mapByUriAndType(clientRedirectUriEntities);
clientRedirectUriEntities.clear();
Set<RedirectUri> redirectUrisToAdd = new HashSet<RedirectUri>();
redirectUrisToAdd.addAll(client.getRedirectUris().getRedirectUri());
for (RedirectUri redirectUri : redirectUrisToAdd) {
String rUriKey = ClientRedirectUriEntity.getUriAndTypeKey(redirectUri);
// If there is a redirect uri with the same uri
if (clientRedirectUriEntitiesMap.containsKey(rUriKey)) {
// Check if it have the same scope and update it
// If it doesnt have the same scope
ClientRedirectUriEntity existingEntity = clientRedirectUriEntitiesMap.get(rUriKey);
// Update the scopes
List<ScopePathType> clientPredefinedScopes = redirectUri.getScope();
if (clientPredefinedScopes != null) {
existingEntity.setPredefinedClientScope(ScopePathType.getScopesAsSingleString(clientPredefinedScopes));
}
existingEntity.setUriActType(redirectUri.getActType());
existingEntity.setUriGeoArea(redirectUri.getGeoArea());
// Add to the list
clientRedirectUriEntities.add(existingEntity);
} else {
ClientRedirectUriEntity clientRedirectUriEntity = new ClientRedirectUriEntity(redirectUri.getValue(), clientDetailsEntity);
List<ScopePathType> clientPredefinedScopes = redirectUri.getScope();
clientRedirectUriEntity.setRedirectUriType(redirectUri.getType().value());
String allPreDefScopes = null;
if (clientPredefinedScopes != null) {
allPreDefScopes = ScopePathType.getScopesAsSingleString(clientPredefinedScopes);
}
clientRedirectUriEntity.setPredefinedClientScope(allPreDefScopes);
clientRedirectUriEntity.setUriActType(redirectUri.getActType());
clientRedirectUriEntity.setUriGeoArea(redirectUri.getGeoArea());
clientRedirectUriEntities.add(clientRedirectUriEntity);
}
}
}
use of org.orcid.persistence.jpa.entities.ClientRedirectUriEntity in project ORCID-Source by ORCID.
the class NotificationManagerImpl method buildAuthorizationUrlForInstitutionalSignIn.
public String buildAuthorizationUrlForInstitutionalSignIn(ClientDetailsEntity clientDetails) throws UnsupportedEncodingException {
ClientRedirectUriEntity rUri = getRedirectUriForInstitutionalSignIn(clientDetails);
if (rUri == null) {
return null;
}
String urlEncodedScopes = URLEncoder.encode(rUri.getPredefinedClientScope(), "UTF-8");
String urlEncodedRedirectUri = URLEncoder.encode(rUri.getRedirectUri(), "UTF-8");
return MessageFormat.format(AUTHORIZATION_END_POINT, orcidUrlManager.getBaseUrl(), clientDetails.getClientId(), urlEncodedScopes, urlEncodedRedirectUri);
}
use of org.orcid.persistence.jpa.entities.ClientRedirectUriEntity in project ORCID-Source by ORCID.
the class JpaJaxbClientAdapterTest method getClientDetailsEntity.
private ClientDetailsEntity getClientDetailsEntity() {
Date now = new Date();
ClientDetailsEntity entity = new ClientDetailsEntity();
entity.setAllowAutoDeprecate(true);
entity.setAuthenticationProviderId("authentication-provider-id");
entity.setClientDescription("description");
entity.setClientName("client-name");
entity.setClientType(ClientType.CREATOR);
entity.setClientWebsite("client-website");
entity.setDateCreated(now);
entity.setEmailAccessReason("email-access-reason");
entity.setGroupProfileId("group-profile-id");
entity.setId("id");
entity.setLastModified(now);
entity.setPersistentTokensEnabled(true);
entity.setClientSecretForJpa("secret-1");
entity.setClientSecretForJpa("secret-2");
entity.setClientSecretForJpa("secret-3");
HashSet<ClientAuthorisedGrantTypeEntity> clientAuthorisedGrantTypeEntities = new HashSet<ClientAuthorisedGrantTypeEntity>();
ClientAuthorisedGrantTypeEntity cagt1 = new ClientAuthorisedGrantTypeEntity();
cagt1.setClientDetailsEntity(new ClientDetailsEntity("id"));
cagt1.setDateCreated(now);
cagt1.setGrantType("grant-type-1");
cagt1.setLastModified(now);
ClientAuthorisedGrantTypeEntity cagt2 = new ClientAuthorisedGrantTypeEntity();
cagt2.setClientDetailsEntity(new ClientDetailsEntity("id"));
cagt2.setDateCreated(now);
cagt2.setGrantType("grant-type-2");
cagt2.setLastModified(now);
ClientAuthorisedGrantTypeEntity cagt3 = new ClientAuthorisedGrantTypeEntity();
cagt3.setClientDetailsEntity(new ClientDetailsEntity("id"));
cagt3.setDateCreated(now);
cagt3.setGrantType("grant-type-3");
cagt3.setLastModified(now);
clientAuthorisedGrantTypeEntities.add(cagt1);
clientAuthorisedGrantTypeEntities.add(cagt2);
clientAuthorisedGrantTypeEntities.add(cagt3);
entity.setClientAuthorizedGrantTypes(clientAuthorisedGrantTypeEntities);
List<ClientGrantedAuthorityEntity> clientGrantedAuthorityEntities = new ArrayList<ClientGrantedAuthorityEntity>();
ClientGrantedAuthorityEntity cga1 = new ClientGrantedAuthorityEntity();
cga1.setAuthority("authority-1");
cga1.setClientDetailsEntity(new ClientDetailsEntity("id"));
cga1.setDateCreated(now);
cga1.setLastModified(now);
ClientGrantedAuthorityEntity cga2 = new ClientGrantedAuthorityEntity();
cga2.setAuthority("authority-2");
cga2.setClientDetailsEntity(new ClientDetailsEntity("id"));
cga2.setDateCreated(now);
cga2.setLastModified(now);
ClientGrantedAuthorityEntity cga3 = new ClientGrantedAuthorityEntity();
cga3.setAuthority("authority-3");
cga3.setClientDetailsEntity(new ClientDetailsEntity("id"));
cga3.setDateCreated(now);
cga3.setLastModified(now);
clientGrantedAuthorityEntities.add(cga1);
clientGrantedAuthorityEntities.add(cga2);
clientGrantedAuthorityEntities.add(cga3);
entity.setClientGrantedAuthorities(clientGrantedAuthorityEntities);
SortedSet<ClientRedirectUriEntity> clientRegisteredRedirectUris = new TreeSet<ClientRedirectUriEntity>();
ClientRedirectUriEntity rUri1 = new ClientRedirectUriEntity();
rUri1.setClientDetailsEntity(new ClientDetailsEntity("id"));
rUri1.setDateCreated(now);
rUri1.setLastModified(now);
rUri1.setPredefinedClientScope(ScopePathType.ACTIVITIES_READ_LIMITED.value());
rUri1.setRedirectUri("redirect-uri-1");
rUri1.setRedirectUriType("type-1");
rUri1.setUriActType("uri-act-type-1");
rUri1.setUriGeoArea("uri-geo-area-1");
ClientRedirectUriEntity rUri2 = new ClientRedirectUriEntity();
rUri2.setClientDetailsEntity(new ClientDetailsEntity("id"));
rUri2.setDateCreated(now);
rUri2.setLastModified(now);
rUri2.setPredefinedClientScope(ScopePathType.ACTIVITIES_UPDATE.value());
rUri2.setRedirectUri("redirect-uri-2");
rUri2.setRedirectUriType("type-2");
rUri2.setUriActType("uri-act-type-2");
rUri2.setUriGeoArea("uri-geo-area-2");
ClientRedirectUriEntity rUri3 = new ClientRedirectUriEntity();
rUri3.setClientDetailsEntity(new ClientDetailsEntity("id"));
rUri3.setDateCreated(now);
rUri3.setLastModified(now);
rUri3.setPredefinedClientScope(ScopePathType.AFFILIATIONS_CREATE.value());
rUri3.setRedirectUri("redirect-uri-3");
rUri3.setRedirectUriType("type-3");
rUri3.setUriActType("uri-act-type-3");
rUri3.setUriGeoArea("uri-geo-area-3");
clientRegisteredRedirectUris.add(rUri1);
clientRegisteredRedirectUris.add(rUri2);
clientRegisteredRedirectUris.add(rUri3);
entity.setClientRegisteredRedirectUris(clientRegisteredRedirectUris);
Set<ClientResourceIdEntity> clientResourceIds = new HashSet<ClientResourceIdEntity>();
ClientResourceIdEntity cri1 = new ClientResourceIdEntity();
cri1.setClientDetailsEntity(new ClientDetailsEntity("id"));
cri1.setDateCreated(now);
cri1.setLastModified(now);
cri1.setResourceId("resource-id-1");
ClientResourceIdEntity cri2 = new ClientResourceIdEntity();
cri2.setClientDetailsEntity(new ClientDetailsEntity("id"));
cri2.setDateCreated(now);
cri2.setLastModified(now);
cri2.setResourceId("resource-id-2");
ClientResourceIdEntity cri3 = new ClientResourceIdEntity();
cri3.setClientDetailsEntity(new ClientDetailsEntity("id"));
cri3.setDateCreated(now);
cri3.setLastModified(now);
cri3.setResourceId("resource-id-3");
clientResourceIds.add(cri1);
clientResourceIds.add(cri2);
clientResourceIds.add(cri3);
entity.setClientResourceIds(clientResourceIds);
Set<ClientScopeEntity> clientScopes = new HashSet<ClientScopeEntity>();
ClientScopeEntity cs1 = new ClientScopeEntity();
cs1.setClientDetailsEntity(new ClientDetailsEntity("id"));
cs1.setDateCreated(now);
cs1.setLastModified(now);
cs1.setScopeType("scope-type-1");
ClientScopeEntity cs2 = new ClientScopeEntity();
cs2.setClientDetailsEntity(new ClientDetailsEntity("id"));
cs2.setDateCreated(now);
cs2.setLastModified(now);
cs2.setScopeType("scope-type-2");
ClientScopeEntity cs3 = new ClientScopeEntity();
cs3.setClientDetailsEntity(new ClientDetailsEntity("id"));
cs3.setDateCreated(now);
cs3.setLastModified(now);
cs3.setScopeType("scope-type-3");
clientScopes.add(cs1);
clientScopes.add(cs2);
clientScopes.add(cs3);
entity.setClientScopes(clientScopes);
Set<CustomEmailEntity> customEmails = new HashSet<CustomEmailEntity>();
CustomEmailEntity ce1 = new CustomEmailEntity();
ce1.setClientDetailsEntity(new ClientDetailsEntity("id"));
ce1.setContent("content-1");
ce1.setDateCreated(now);
ce1.setEmailType(EmailType.ACCOUNT_DEPRECATED);
ce1.setHtml(true);
ce1.setLastModified(now);
ce1.setSender("sender-1");
ce1.setSubject("subject-1");
CustomEmailEntity ce2 = new CustomEmailEntity();
ce2.setClientDetailsEntity(new ClientDetailsEntity("id"));
ce2.setContent("content-2");
ce2.setDateCreated(now);
ce2.setEmailType(EmailType.ACCOUNT_DEPRECATED);
ce2.setHtml(true);
ce2.setLastModified(now);
ce2.setSender("sender-2");
ce2.setSubject("subject-2");
CustomEmailEntity ce3 = new CustomEmailEntity();
ce3.setClientDetailsEntity(new ClientDetailsEntity("id"));
ce3.setContent("content-3");
ce3.setDateCreated(now);
ce3.setEmailType(EmailType.ACCOUNT_DEPRECATED);
ce3.setHtml(true);
ce3.setLastModified(now);
ce3.setSender("sender-3");
ce3.setSubject("subject-3");
customEmails.add(ce1);
customEmails.add(ce2);
customEmails.add(ce3);
entity.setCustomEmails(customEmails);
return entity;
}
use of org.orcid.persistence.jpa.entities.ClientRedirectUriEntity in project ORCID-Source by ORCID.
the class NotificationManagerImpl method buildAuthorizationUrlForInstitutionalSignIn.
public String buildAuthorizationUrlForInstitutionalSignIn(ClientDetailsEntity clientDetails) throws UnsupportedEncodingException {
ClientRedirectUriEntity rUri = getRedirectUriForInstitutionalSignIn(clientDetails);
if (rUri == null) {
return null;
}
String urlEncodedScopes = URLEncoder.encode(rUri.getPredefinedClientScope(), "UTF-8");
String urlEncodedRedirectUri = URLEncoder.encode(rUri.getRedirectUri(), "UTF-8");
return MessageFormat.format(AUTHORIZATION_END_POINT, orcidUrlManager.getBaseUrl(), clientDetails.getClientId(), urlEncodedScopes, urlEncodedRedirectUri);
}
use of org.orcid.persistence.jpa.entities.ClientRedirectUriEntity in project ORCID-Source by ORCID.
the class Jpa2JaxbAdapterImpl method toOrcidClient.
@Override
public OrcidClient toOrcidClient(ClientDetailsEntity clientDetailsEntity) {
OrcidClient client = new OrcidClient();
client.setClientId(clientDetailsEntity.getId());
client.setType(clientDetailsEntity.getClientType());
if (clientDetailsEntity != null) {
client.setClientSecret(clientDetailsEntity.getClientSecretForJpa());
client.setDisplayName(clientDetailsEntity.getClientName());
client.setShortDescription(clientDetailsEntity.getClientDescription());
client.setWebsite(clientDetailsEntity.getClientWebsite());
client.setPersistentTokenEnabled(clientDetailsEntity.isPersistentTokensEnabled());
client.setIdp(clientDetailsEntity.getAuthenticationProviderId());
client.setAllowAutoDeprecate(clientDetailsEntity.isAllowAutoDeprecate());
Set<ClientRedirectUriEntity> redirectUriEntities = clientDetailsEntity.getClientRegisteredRedirectUris();
RedirectUris redirectUris = new RedirectUris();
client.setRedirectUris(redirectUris);
for (ClientRedirectUriEntity redirectUriEntity : redirectUriEntities) {
RedirectUri redirectUri = new RedirectUri(redirectUriEntity.getRedirectUri());
redirectUri.setType(RedirectUriType.fromValue(redirectUriEntity.getRedirectUriType()));
String predefinedScope = redirectUriEntity.getPredefinedClientScope();
if (StringUtils.isNotBlank(predefinedScope)) {
List<ScopePathType> scopePathType = new ArrayList<ScopePathType>(ScopePathType.getScopesFromSpaceSeparatedString(predefinedScope));
redirectUri.setScope(scopePathType);
}
redirectUri.setActType(redirectUriEntity.getUriActType());
redirectUri.setGeoArea(redirectUriEntity.getUriGeoArea());
redirectUris.getRedirectUri().add(redirectUri);
}
}
return client;
}
Aggregations