Search in sources :

Example 1 with ClientRedirectUri

use of org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri in project ORCID-Source by ORCID.

the class RedirectUri method toModelObject.

public ClientRedirectUri toModelObject() {
    ClientRedirectUri element = new ClientRedirectUri();
    if (this.scopes != null) {
        Set<ScopePathType> scopesSet = new HashSet<ScopePathType>();
        for (String scope : this.scopes) {
            scopesSet.add(ScopePathType.fromValue(scope));
        }
        element.setPredefinedClientScopes(scopesSet);
    }
    if (!PojoUtil.isEmpty(this.value)) {
        element.setRedirectUri(this.value.getValue());
    }
    if (!PojoUtil.isEmpty(this.type)) {
        element.setRedirectUriType(this.type.getValue());
    }
    if (!PojoUtil.isEmpty(this.actType)) {
        element.setUriActType(this.actType.getValue());
    }
    if (!PojoUtil.isEmpty(this.geoArea)) {
        element.setUriGeoArea(this.geoArea.getValue());
    }
    return element;
}
Also used : ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ScopePathType(org.orcid.jaxb.model.message.ScopePathType) HashSet(java.util.HashSet)

Example 2 with ClientRedirectUri

use of org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri in project ORCID-Source by ORCID.

the class MapperFacadeFactory method getClientMapperFacade.

public MapperFacade getClientMapperFacade() {
    MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
    ClassMapBuilder<ClientSummary, ClientDetailsEntity> clientSummaryClassMap = mapperFactory.classMap(ClientSummary.class, ClientDetailsEntity.class);
    clientSummaryClassMap.field("name", "clientName");
    clientSummaryClassMap.field("description", "clientDescription");
    clientSummaryClassMap.byDefault();
    clientSummaryClassMap.register();
    ClassMapBuilder<Client, ClientDetailsEntity> clientClassMap = mapperFactory.classMap(Client.class, ClientDetailsEntity.class);
    clientClassMap.field("name", "clientName");
    clientClassMap.field("description", "clientDescription");
    clientClassMap.field("website", "clientWebsite");
    clientClassMap.field("allowAutoDeprecate", "allowAutoDeprecate");
    clientClassMap.fieldBToA("clientId", "id");
    clientClassMap.fieldBToA("clientType", "clientType");
    clientClassMap.fieldBToA("groupProfileId", "groupProfileId");
    clientClassMap.fieldBToA("authenticationProviderId", "authenticationProviderId");
    clientClassMap.fieldBToA("persistentTokensEnabled", "persistentTokensEnabled");
    clientClassMap.customize(new CustomMapper<Client, ClientDetailsEntity>() {

        /**
         * On the way in, from Client to ClientDetailsEntity, we need to care about mapping the redirect uri's, since all config features will not change from UI requests
         */
        @Override
        public void mapAtoB(Client a, ClientDetailsEntity b, MappingContext context) {
            Map<String, ClientRedirectUriEntity> existingRedirectUriEntitiesMap = new HashMap<String, ClientRedirectUriEntity>();
            if (b.getClientRegisteredRedirectUris() != null && !b.getClientRegisteredRedirectUris().isEmpty()) {
                existingRedirectUriEntitiesMap = ClientRedirectUriEntity.mapByUriAndType(b.getClientRegisteredRedirectUris());
            }
            if (b.getClientRegisteredRedirectUris() != null) {
                b.getClientRegisteredRedirectUris().clear();
            } else {
                b.setClientRegisteredRedirectUris(new TreeSet<ClientRedirectUriEntity>());
            }
            if (a.getClientRedirectUris() != null) {
                for (ClientRedirectUri cru : a.getClientRedirectUris()) {
                    String rUriKey = ClientRedirectUriEntity.getUriAndTypeKey(cru.getRedirectUri(), cru.getRedirectUriType());
                    if (existingRedirectUriEntitiesMap.containsKey(rUriKey)) {
                        ClientRedirectUriEntity existingEntity = existingRedirectUriEntitiesMap.get(rUriKey);
                        existingEntity.setLastModified(new Date());
                        existingEntity.setPredefinedClientScope(ScopePathType.getScopesAsSingleString(cru.getPredefinedClientScopes()));
                        existingEntity.setUriActType(cru.getUriActType());
                        existingEntity.setUriGeoArea(cru.getUriGeoArea());
                        b.getClientRegisteredRedirectUris().add(existingEntity);
                    } else {
                        ClientRedirectUriEntity newEntity = new ClientRedirectUriEntity();
                        newEntity.setClientDetailsEntity(b);
                        newEntity.setDateCreated(new Date());
                        newEntity.setLastModified(new Date());
                        newEntity.setPredefinedClientScope(ScopePathType.getScopesAsSingleString(cru.getPredefinedClientScopes()));
                        newEntity.setRedirectUri(cru.getRedirectUri());
                        newEntity.setRedirectUriType(cru.getRedirectUriType());
                        newEntity.setUriActType(cru.getUriActType());
                        newEntity.setUriGeoArea(cru.getUriGeoArea());
                        b.getClientRegisteredRedirectUris().add(newEntity);
                    }
                }
            }
        }

        /**
         * On the way out, from ClientDetailsEntity to Client, we just need to care about mapping the redirect uri's and the primary client secret since all config features will not be visible on the UI
         */
        @Override
        public void mapBtoA(ClientDetailsEntity b, Client a, MappingContext context) {
            if (b.getClientSecrets() != null) {
                for (ClientSecretEntity entity : b.getClientSecrets()) {
                    if (entity.isPrimary()) {
                        a.setDecryptedSecret(encryptionManager.decryptForInternalUse(entity.getClientSecret()));
                    }
                }
            }
            if (b.getRegisteredRedirectUri() != null) {
                a.setClientRedirectUris(new HashSet<ClientRedirectUri>());
                for (ClientRedirectUriEntity entity : b.getClientRegisteredRedirectUris()) {
                    ClientRedirectUri element = new ClientRedirectUri();
                    element.setRedirectUri(entity.getRedirectUri());
                    element.setRedirectUriType(entity.getRedirectUriType());
                    element.setUriActType(entity.getUriActType());
                    element.setUriGeoArea(entity.getUriGeoArea());
                    element.setPredefinedClientScopes(ScopePathType.getScopesFromSpaceSeparatedString(entity.getPredefinedClientScope()));
                    a.getClientRedirectUris().add(element);
                }
            }
        }
    });
    clientClassMap.register();
    return mapperFactory.getMapperFacade();
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ClientSummary(org.orcid.jaxb.model.v3.dev1.client.ClientSummary) ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity) Date(java.util.Date) FuzzyDate(org.orcid.jaxb.model.v3.dev1.common.FuzzyDate) PublicationDate(org.orcid.jaxb.model.v3.dev1.common.PublicationDate) MappingContext(ma.glasnost.orika.MappingContext) TreeSet(java.util.TreeSet) ClientSecretEntity(org.orcid.persistence.jpa.entities.ClientSecretEntity) DefaultMapperFactory(ma.glasnost.orika.impl.DefaultMapperFactory) DefaultMapperFactory(ma.glasnost.orika.impl.DefaultMapperFactory) MapperFactory(ma.glasnost.orika.MapperFactory) Client(org.orcid.jaxb.model.v3.dev1.client.Client) Map(java.util.Map) HashMap(java.util.HashMap) HashSet(java.util.HashSet)

Example 3 with ClientRedirectUri

use of org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri in project ORCID-Source by ORCID.

the class ClientManagerReadOnlyTest method getClient.

private Client getClient(String randomString) {
    Client client = new Client();
    client.setAllowAutoDeprecate(true);
    client.setPersistentTokensEnabled(true);
    client.setClientType(ClientType.CREATOR);
    client.setDescription("description " + randomString);
    client.setGroupProfileId("group-profile-id " + randomString);
    client.setId(randomString);
    client.setName("client-name " + randomString);
    client.setWebsite("client-website " + randomString);
    client.setAuthenticationProviderId("authentication-provider-id " + randomString);
    Set<ClientRedirectUri> clientRedirectUris = new HashSet<ClientRedirectUri>();
    ClientRedirectUri rUri1 = new ClientRedirectUri();
    Set<ScopePathType> scopes1 = new HashSet<ScopePathType>();
    scopes1.add(ScopePathType.ACTIVITIES_READ_LIMITED);
    rUri1.setPredefinedClientScopes(scopes1);
    rUri1.setRedirectUri("redirect-uri-1 " + randomString);
    rUri1.setRedirectUriType("type-1 " + randomString);
    rUri1.setUriActType("uri-act-type-1 " + randomString);
    rUri1.setUriGeoArea("uri-geo-area-1 " + randomString);
    ClientRedirectUri rUri2 = new ClientRedirectUri();
    Set<ScopePathType> scopes2 = new HashSet<ScopePathType>();
    scopes2.add(ScopePathType.ACTIVITIES_UPDATE);
    rUri2.setPredefinedClientScopes(scopes2);
    rUri2.setRedirectUri("redirect-uri-2 " + randomString);
    rUri2.setRedirectUriType("type-2 " + randomString);
    rUri2.setUriActType("uri-act-type-2 " + randomString);
    rUri2.setUriGeoArea("uri-geo-area-2 " + randomString);
    ClientRedirectUri rUri3 = new ClientRedirectUri();
    Set<ScopePathType> scopes3 = new HashSet<ScopePathType>();
    scopes3.add(ScopePathType.AFFILIATIONS_CREATE);
    rUri3.setPredefinedClientScopes(scopes3);
    rUri3.setRedirectUri("redirect-uri-3 " + randomString);
    rUri3.setRedirectUriType("type-3 " + randomString);
    rUri3.setUriActType("uri-act-type-3 " + randomString);
    rUri3.setUriGeoArea("uri-geo-area-3 " + randomString);
    clientRedirectUris.add(rUri1);
    clientRedirectUris.add(rUri2);
    clientRedirectUris.add(rUri3);
    client.setClientRedirectUris(clientRedirectUris);
    return client;
}
Also used : ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ScopePathType(org.orcid.jaxb.model.message.ScopePathType) Client(org.orcid.jaxb.model.v3.dev1.client.Client) HashSet(java.util.HashSet)

Example 4 with ClientRedirectUri

use of org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri in project ORCID-Source by ORCID.

the class Client method fromModelObject.

public static Client fromModelObject(org.orcid.jaxb.model.v3.dev1.client.Client modelObject) {
    Client client = new Client();
    client.setClientId(Text.valueOf(modelObject.getId()));
    client.setAllowAutoDeprecate(Checkbox.valueOf(modelObject.isAllowAutoDeprecate()));
    client.setPersistentTokenEnabled(Checkbox.valueOf(modelObject.isPersistentTokensEnabled()));
    if (modelObject.getAuthenticationProviderId() != null) {
        client.setAuthenticationProviderId(Text.valueOf(modelObject.getAuthenticationProviderId()));
    }
    List<RedirectUri> redirectUris = new ArrayList<RedirectUri>();
    if (modelObject.getClientRedirectUris() != null) {
        for (ClientRedirectUri element : modelObject.getClientRedirectUris()) {
            RedirectUri rUri = RedirectUri.fromModelObject(element);
            redirectUris.add(rUri);
        }
    }
    client.setRedirectUris(redirectUris);
    client.setType(Text.valueOf(modelObject.getClientType().value()));
    client.setClientSecret(Text.valueOf(modelObject.getDecryptedSecret()));
    client.setShortDescription(Text.valueOf(modelObject.getDescription()));
    client.setMemberId(Text.valueOf(modelObject.getGroupProfileId()));
    client.setDisplayName(Text.valueOf(modelObject.getName()));
    client.setWebsite(Text.valueOf(modelObject.getWebsite()));
    return client;
}
Also used : ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ArrayList(java.util.ArrayList) ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri)

Example 5 with ClientRedirectUri

use of org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri in project ORCID-Source by ORCID.

the class Client method toModelObject.

public org.orcid.jaxb.model.v3.dev1.client.Client toModelObject() {
    org.orcid.jaxb.model.v3.dev1.client.Client modelObject = new org.orcid.jaxb.model.v3.dev1.client.Client();
    if (this.getAllowAutoDeprecate() != null) {
        modelObject.setAllowAutoDeprecate(this.getAllowAutoDeprecate().getValue());
    }
    if (this.getAuthenticationProviderId() != null) {
        modelObject.setAuthenticationProviderId(this.getAuthenticationProviderId().getValue());
    }
    if (this.getClientId() != null) {
        modelObject.setId(this.getClientId().getValue());
    }
    if (this.getDisplayName() != null) {
        modelObject.setName(this.getDisplayName().getValue());
    }
    if (this.getMemberId() != null) {
        modelObject.setGroupProfileId(this.getMemberId().getValue());
    }
    if (this.getPersistentTokenEnabled() != null) {
        modelObject.setPersistentTokensEnabled(this.getPersistentTokenEnabled().getValue());
    }
    if (this.getRedirectUris() != null) {
        Set<ClientRedirectUri> redirectUriSet = new HashSet<ClientRedirectUri>();
        for (RedirectUri rUri : this.getRedirectUris()) {
            ClientRedirectUri redirectUri = new ClientRedirectUri();
            if (rUri.getScopes() != null) {
                Set<ScopePathType> scopes = new HashSet<ScopePathType>();
                for (String scope : rUri.getScopes()) {
                    scopes.add(ScopePathType.fromValue(scope));
                }
                redirectUri.setPredefinedClientScopes(scopes);
            }
            redirectUri.setRedirectUri(rUri.getValue().getValue());
            redirectUri.setRedirectUriType(rUri.getType().getValue());
            if (rUri.getActType() != null) {
                redirectUri.setUriActType(rUri.getActType().getValue());
            }
            if (rUri.getGeoArea() != null) {
                redirectUri.setUriGeoArea(rUri.getGeoArea().getValue());
            }
            redirectUriSet.add(redirectUri);
        }
        modelObject.setClientRedirectUris(redirectUriSet);
    }
    if (this.getShortDescription() != null) {
        modelObject.setDescription(this.getShortDescription().getValue());
    }
    if (this.getWebsite() != null) {
        modelObject.setWebsite(this.getWebsite().getValue());
    }
    return modelObject;
}
Also used : ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ClientRedirectUri(org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri) ScopePathType(org.orcid.jaxb.model.message.ScopePathType) HashSet(java.util.HashSet)

Aggregations

ClientRedirectUri (org.orcid.jaxb.model.v3.dev1.client.ClientRedirectUri)9 ScopePathType (org.orcid.jaxb.model.message.ScopePathType)6 HashSet (java.util.HashSet)5 Client (org.orcid.jaxb.model.v3.dev1.client.Client)3 ArrayList (java.util.ArrayList)2 Date (java.util.Date)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 TreeSet (java.util.TreeSet)1 MapperFactory (ma.glasnost.orika.MapperFactory)1 MappingContext (ma.glasnost.orika.MappingContext)1 DefaultMapperFactory (ma.glasnost.orika.impl.DefaultMapperFactory)1 ClientSummary (org.orcid.jaxb.model.v3.dev1.client.ClientSummary)1 FuzzyDate (org.orcid.jaxb.model.v3.dev1.common.FuzzyDate)1 PublicationDate (org.orcid.jaxb.model.v3.dev1.common.PublicationDate)1 ClientDetailsEntity (org.orcid.persistence.jpa.entities.ClientDetailsEntity)1 ClientRedirectUriEntity (org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)1 ClientSecretEntity (org.orcid.persistence.jpa.entities.ClientSecretEntity)1