Search in sources :

Example 16 with ClientRedirectUriEntity

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);
        }
    }
}
Also used : ScopePathType(org.orcid.jaxb.model.message.ScopePathType) RedirectUri(org.orcid.jaxb.model.clientgroup.RedirectUri) ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity) HashSet(java.util.HashSet)

Example 17 with 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);
}
Also used : ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)

Example 18 with ClientRedirectUriEntity

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;
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) ClientGrantedAuthorityEntity(org.orcid.persistence.jpa.entities.ClientGrantedAuthorityEntity) ArrayList(java.util.ArrayList) ClientResourceIdEntity(org.orcid.persistence.jpa.entities.ClientResourceIdEntity) Date(java.util.Date) ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity) ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) ClientAuthorisedGrantTypeEntity(org.orcid.persistence.jpa.entities.ClientAuthorisedGrantTypeEntity) TreeSet(java.util.TreeSet) CustomEmailEntity(org.orcid.persistence.jpa.entities.CustomEmailEntity) HashSet(java.util.HashSet)

Example 19 with 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);
}
Also used : ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)

Example 20 with ClientRedirectUriEntity

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;
}
Also used : OrcidClient(org.orcid.jaxb.model.clientgroup.OrcidClient) ArrayList(java.util.ArrayList) RedirectUris(org.orcid.jaxb.model.clientgroup.RedirectUris) RedirectUri(org.orcid.jaxb.model.clientgroup.RedirectUri) ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)

Aggregations

ClientRedirectUriEntity (org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)21 ClientDetailsEntity (org.orcid.persistence.jpa.entities.ClientDetailsEntity)12 HashSet (java.util.HashSet)9 TreeSet (java.util.TreeSet)9 ArrayList (java.util.ArrayList)7 Date (java.util.Date)6 RedirectUri (org.orcid.jaxb.model.clientgroup.RedirectUri)5 ClientAuthorisedGrantTypeEntity (org.orcid.persistence.jpa.entities.ClientAuthorisedGrantTypeEntity)5 ClientGrantedAuthorityEntity (org.orcid.persistence.jpa.entities.ClientGrantedAuthorityEntity)5 ClientSecretEntity (org.orcid.persistence.jpa.entities.ClientSecretEntity)5 ScopePathType (org.orcid.jaxb.model.message.ScopePathType)4 ClientResourceIdEntity (org.orcid.persistence.jpa.entities.ClientResourceIdEntity)4 ClientScopeEntity (org.orcid.persistence.jpa.entities.ClientScopeEntity)4 CustomEmailEntity (org.orcid.persistence.jpa.entities.CustomEmailEntity)4 OrcidClient (org.orcid.jaxb.model.clientgroup.OrcidClient)3 HashMap (java.util.HashMap)2 Map (java.util.Map)2 MapperFactory (ma.glasnost.orika.MapperFactory)2 MappingContext (ma.glasnost.orika.MappingContext)2 DefaultMapperFactory (ma.glasnost.orika.impl.DefaultMapperFactory)2