use of org.orcid.persistence.jpa.entities.ClientScopeEntity 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.ClientScopeEntity in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerImpl method updateClientTypeDueGroupTypeUpdate.
/**
* Updates the client type and client scopes of all clients that belongs to
* the given group
*
* @param groupProfileEntity
* the group profile
*/
@Transactional
private void updateClientTypeDueGroupTypeUpdate(ProfileEntity groupProfileEntity) {
Set<ClientDetailsEntity> clients = groupProfileEntity.getClients();
ClientType clientType = this.getClientType(groupProfileEntity.getGroupType());
for (ClientDetailsEntity client : clients) {
Set<String> newSetOfScopes = this.createScopes(clientType);
Set<ClientScopeEntity> existingScopes = client.getClientScopes();
Iterator<ClientScopeEntity> scopesIterator = existingScopes.iterator();
while (scopesIterator.hasNext()) {
ClientScopeEntity clientScopeEntity = scopesIterator.next();
if (newSetOfScopes.contains(clientScopeEntity.getScopeType())) {
newSetOfScopes.remove(clientScopeEntity.getScopeType());
} else {
clientScopeDao.deleteScope(client.getClientId(), clientScopeEntity.getScopeType());
}
}
// Insert the new scopes
for (String newScope : newSetOfScopes) {
ClientScopeEntity clientScopeEntity = new ClientScopeEntity();
clientScopeEntity.setClientDetailsEntity(client);
clientScopeEntity.setScopeType(newScope);
clientScopeEntity.setDateCreated(new Date());
clientScopeEntity.setLastModified(new Date());
clientScopeDao.persist(clientScopeEntity);
}
// Update client type
clientDetailsDao.updateClientType(clientType, client.getClientId());
// Update last modified
clientDetailsDao.updateLastModified(client.getClientId());
}
}
use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.
the class AddReadPublicScopeToNoneInstitutionMembers method updateScopes.
private void updateScopes(ClientDetailsEntity clientDetails) {
String readPublicScope = ScopePathType.READ_PUBLIC.value();
boolean alreadyHaveReadPublicScope = false;
for (ClientScopeEntity scope : clientDetails.getClientScopes()) {
if (readPublicScope.equals(scope.getScopeType())) {
alreadyHaveReadPublicScope = true;
break;
}
}
if (!alreadyHaveReadPublicScope) {
ClientScopeEntity clientScope = new ClientScopeEntity();
clientScope.setClientDetailsEntity(clientDetails);
clientScope.setScopeType(ScopePathType.READ_PUBLIC.value());
clientScope.setDateCreated(new Date());
clientScope.setLastModified(new Date());
clientDetails.getClientScopes().add(clientScope);
clientDetailsManager.merge(clientDetails);
clientsUpdated += 1;
System.out.println("Client " + clientDetails.getId() + " has been updated");
} else {
System.out.println("Client " + clientDetails.getId() + " already have the /read-public scope");
}
}
use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.
the class MembersManagerImpl method updateClientTypeDueMemberTypeUpdate.
private void updateClientTypeDueMemberTypeUpdate(String memberId, MemberType memberType) {
List<ClientDetailsEntity> clients = clientDetailsDao.findByGroupId(memberId);
ClientType clientType = this.getClientType(memberType);
Date now = new Date();
for (ClientDetailsEntity client : clients) {
Set<String> newSetOfScopes = ClientType.getScopes(clientType);
Set<ClientScopeEntity> existingScopes = client.getClientScopes();
Iterator<ClientScopeEntity> scopesIterator = existingScopes.iterator();
while (scopesIterator.hasNext()) {
ClientScopeEntity clientScopeEntity = scopesIterator.next();
if (newSetOfScopes.contains(clientScopeEntity.getScopeType())) {
newSetOfScopes.remove(clientScopeEntity.getScopeType());
} else {
clientScopeDao.deleteScope(client.getClientId(), clientScopeEntity.getScopeType());
}
}
// Insert the new scopes
for (String newScope : newSetOfScopes) {
ClientScopeEntity clientScopeEntity = new ClientScopeEntity();
clientScopeEntity.setClientDetailsEntity(client);
clientScopeEntity.setScopeType(newScope);
clientScopeEntity.setDateCreated(now);
clientScopeEntity.setLastModified(now);
clientScopeDao.persist(clientScopeEntity);
}
// Update client type
clientDetailsDao.updateClientType(clientType, client.getClientId());
}
}
use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.
the class ClientManagerImpl method create.
private Client create(Client newClient, boolean publicClient) {
String memberId = sourceManager.retrieveSourceOrcid();
ProfileEntity memberEntity = profileEntityCacheManager.retrieve(memberId);
// Verify if the member type allow him to create another client
if (publicClient) {
ClientDetailsEntity existingPublicClient = clientDetailsDao.getPublicClient(memberId);
if (existingPublicClient != null) {
return jpaJaxbClientAdapter.toClient(existingPublicClient);
}
} else {
validateCreateClientRequest(memberId);
}
ClientDetailsEntity newEntity = jpaJaxbClientAdapter.toEntity(newClient);
Date now = new Date();
newEntity.setDateCreated(now);
newEntity.setLastModified(now);
newEntity.setId(appIdGenerationManager.createNewAppId());
newEntity.setClientSecretForJpa(encryptionManager.encryptForInternalUse(UUID.randomUUID().toString()), true);
newEntity.setGroupProfileId(memberId);
// Set persistent tokens enabled by default
newEntity.setPersistentTokensEnabled(true);
// Set authentication provider id
newEntity.setAuthenticationProviderId(newClient.getAuthenticationProviderId());
// Set ClientType
if (!publicClient) {
newEntity.setClientType(getClientType(memberEntity.getGroupType()));
} else {
newEntity.setClientType(ClientType.PUBLIC_CLIENT);
}
// Set ClientResourceIdEntity
Set<ClientResourceIdEntity> clientResourceIdEntities = new HashSet<ClientResourceIdEntity>();
ClientResourceIdEntity clientResourceIdEntity = new ClientResourceIdEntity();
clientResourceIdEntity.setClientDetailsEntity(newEntity);
clientResourceIdEntity.setResourceId("orcid");
clientResourceIdEntities.add(clientResourceIdEntity);
newEntity.setClientResourceIds(clientResourceIdEntities);
// Set ClientAuthorisedGrantTypeEntity
Set<ClientAuthorisedGrantTypeEntity> clientAuthorisedGrantTypeEntities = new HashSet<ClientAuthorisedGrantTypeEntity>();
for (String clientAuthorisedGrantType : Arrays.asList("client_credentials", "authorization_code", "refresh_token", "implicit")) {
ClientAuthorisedGrantTypeEntity grantTypeEntity = new ClientAuthorisedGrantTypeEntity();
grantTypeEntity.setClientDetailsEntity(newEntity);
grantTypeEntity.setGrantType(clientAuthorisedGrantType);
clientAuthorisedGrantTypeEntities.add(grantTypeEntity);
}
newEntity.setClientAuthorizedGrantTypes(clientAuthorisedGrantTypeEntities);
// Set ClientGrantedAuthorityEntity
List<ClientGrantedAuthorityEntity> clientGrantedAuthorityEntities = new ArrayList<ClientGrantedAuthorityEntity>();
ClientGrantedAuthorityEntity clientGrantedAuthorityEntity = new ClientGrantedAuthorityEntity();
clientGrantedAuthorityEntity.setClientDetailsEntity(newEntity);
if (publicClient) {
clientGrantedAuthorityEntity.setAuthority("ROLE_PUBLIC");
} else {
clientGrantedAuthorityEntity.setAuthority("ROLE_CLIENT");
}
clientGrantedAuthorityEntities.add(clientGrantedAuthorityEntity);
newEntity.setClientGrantedAuthorities(clientGrantedAuthorityEntities);
// Set ClientScopeEntity
Set<ClientScopeEntity> clientScopeEntities = new HashSet<ClientScopeEntity>();
for (String clientScope : ClientType.getScopes(newEntity.getClientType())) {
ClientScopeEntity clientScopeEntity = new ClientScopeEntity();
clientScopeEntity.setClientDetailsEntity(newEntity);
clientScopeEntity.setScopeType(clientScope);
clientScopeEntities.add(clientScopeEntity);
}
newEntity.setClientScopes(clientScopeEntities);
try {
clientDetailsDao.persist(newEntity);
} catch (Exception e) {
LOGGER.error("Unable to client client with id {}", newEntity.getId(), e);
throw e;
}
return jpaJaxbClientAdapter.toClient(newEntity);
}
Aggregations