use of org.orcid.jaxb.model.clientgroup.RedirectUri in project ORCID-Source by ORCID.
the class ThirdPartyLinkManagerImpl method getClients.
private List<OrcidClient> getClients(RedirectUriType rut) {
List<OrcidClient> orcidClients = new ArrayList<OrcidClient>();
List<ClientRedirectUriEntity> entitiesWithPredefinedScopes = clientRedirectDao.findClientDetailsWithRedirectScope();
for (ClientRedirectUriEntity entity : entitiesWithPredefinedScopes) {
if (rut.value().equals(entity.getRedirectUriType())) {
ClientDetailsEntity clientDetails = entity.getClientDetailsEntity();
RedirectUri redirectUri = new RedirectUri(entity.getRedirectUri());
String prefefinedScopes = entity.getPredefinedClientScope();
redirectUri.setScope(new ArrayList<ScopePathType>(ScopePathType.getScopesFromSpaceSeparatedString(prefefinedScopes)));
redirectUri.setType(RedirectUriType.fromValue(entity.getRedirectUriType()));
redirectUri.setActType(entity.getUriActType());
redirectUri.setGeoArea(entity.getUriGeoArea());
RedirectUris redirectUris = new RedirectUris();
redirectUris.getRedirectUri().add(redirectUri);
OrcidClient minimalClientDetails = new OrcidClient();
minimalClientDetails.setDisplayName(clientDetails.getClientName());
minimalClientDetails.setShortDescription(clientDetails.getClientDescription());
minimalClientDetails.setClientId(clientDetails.getClientId());
minimalClientDetails.setRedirectUris(redirectUris);
orcidClients.add(minimalClientDetails);
}
}
return orcidClients;
}
use of org.orcid.jaxb.model.clientgroup.RedirectUri in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerTest method testCreateOrcidClientGroup.
@Test
public void testCreateOrcidClientGroup() {
OrcidClientGroup createdGroup = orcidClientGroupManager.createOrUpdateOrcidClientGroup(group);
assertNotNull(createdGroup);
assertEquals(group.getGroupName(), createdGroup.getGroupName());
assertEquals(group.getEmail(), createdGroup.getEmail());
assertNotNull(createdGroup.getGroupOrcid());
List<OrcidClient> createdClients = createdGroup.getOrcidClient();
assertNotNull(createdClients);
assertEquals(2, createdClients.size());
Map<String, OrcidClient> createdClientsMappedByName = new HashMap<String, OrcidClient>();
for (OrcidClient createdClient : createdClients) {
assertNotNull(createdClient.getClientId());
assertNotNull(createdClient.getClientSecret());
assertNotNull(createdClient.getIdp());
createdClientsMappedByName.put(createdClient.getDisplayName(), createdClient);
}
OrcidClient complexityClient = createdClientsMappedByName.get("Ecological Complexity");
assertNotNull(complexityClient);
assertEquals("http://www.journals.elsevier.com/ecological-complexity", complexityClient.getWebsite());
assertEquals("An International Journal on Biocomplexity in the Environment and Theoretical Ecology", complexityClient.getShortDescription());
List<RedirectUri> createdRedirectUris = complexityClient.getRedirectUris().getRedirectUri();
assertNotNull(createdRedirectUris);
assertEquals(1, createdRedirectUris.size());
assertEquals("http://www.journals.elsevier.com/ecological-complexity/orcid-callback", createdRedirectUris.get(0).getValue());
assertEquals("grant-read-wizard", createdRedirectUris.get(0).getType().value());
List<ScopePathType> scopesForRedirect = createdRedirectUris.get(0).getScope();
assertTrue(scopesForRedirect.size() == 2);
assertTrue(scopesForRedirect.contains(ScopePathType.ORCID_PROFILE_CREATE) && scopesForRedirect.contains(ScopePathType.ORCID_BIO_READ_LIMITED));
assertEquals("http://www.journals.elsevier.com/ecological-complexity/orcid-callback", createdRedirectUris.get(0).getValue());
assertEquals("grant-read-wizard", createdRedirectUris.get(0).getType().value());
// Look up client details directly to check scopes
ClientDetailsEntity complexityEntity = clientDetailsManager.findByClientId(complexityClient.getClientId());
Set<String> clientScopeTypes = complexityEntity.getScope();
assertNotNull(clientScopeTypes);
assertTrue(clientScopeTypes.contains("/orcid-bio/update"));
assertTrue(clientScopeTypes.contains("/orcid-bio/read-limited"));
assertTrue(clientScopeTypes.contains("/orcid-works/read-limited"));
assertFalse(clientScopeTypes.contains("/orcid-profile/create"));
assertTrue(clientScopeTypes.contains("/authenticate"));
}
use of org.orcid.jaxb.model.clientgroup.RedirectUri in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerTest method testAddUpdaterToBasicInstitutionGroup.
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testAddUpdaterToBasicInstitutionGroup() {
final OrcidClientGroup group = new OrcidClientGroup();
group.setGroupName("Elsevier");
group.setEmail("basic-institution-member@elsevier.com" + System.currentTimeMillis());
group.setType(MemberType.BASIC_INSTITUTION);
OrcidClientGroup createdGroup = transactionTemplate.execute(new TransactionCallback<OrcidClientGroup>() {
public OrcidClientGroup doInTransaction(TransactionStatus status) {
return orcidClientGroupManager.createOrUpdateOrcidClientGroup(group);
}
});
RedirectUris redirectUris = new RedirectUris();
RedirectUri redirectUri = new RedirectUri("http://uri.com");
redirectUris.getRedirectUri().add(redirectUri);
OrcidClient client1 = new OrcidClient();
client1.setDisplayName("Name");
client1.setRedirectUris(redirectUris);
client1.setShortDescription("Description");
client1.setType(ClientType.UPDATER);
client1.setWebsite("http://site.com");
// Add one creator client to a basic group should fail
try {
OrcidClient orcidClient = orcidClientGroupManager.createAndPersistClientProfile(createdGroup.getGroupOrcid(), client1);
assertEquals(orcidClient.getType(), ClientType.CREATOR);
} catch (OrcidClientGroupManagementException e) {
}
}
use of org.orcid.jaxb.model.clientgroup.RedirectUri in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerTest method testAddMoreThanOneClientToBasicGroup.
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testAddMoreThanOneClientToBasicGroup() {
final OrcidClientGroup group = new OrcidClientGroup();
group.setGroupName("Elsevier");
group.setEmail("basic-member@elsevier.com" + System.currentTimeMillis());
group.setType(MemberType.BASIC);
OrcidClientGroup createdGroup = transactionTemplate.execute(new TransactionCallback<OrcidClientGroup>() {
public OrcidClientGroup doInTransaction(TransactionStatus status) {
return orcidClientGroupManager.createOrUpdateOrcidClientGroup(group);
}
});
RedirectUris redirectUris = new RedirectUris();
RedirectUri redirectUri = new RedirectUri("http://uri.com");
redirectUris.getRedirectUri().add(redirectUri);
OrcidClient client1 = new OrcidClient();
client1.setDisplayName("Name");
client1.setRedirectUris(redirectUris);
client1.setShortDescription("Description");
client1.setType(ClientType.UPDATER);
client1.setWebsite("http://site.com");
// Add one client
try {
orcidClientGroupManager.createAndPersistClientProfile(createdGroup.getGroupOrcid(), client1);
} catch (OrcidClientGroupManagementException e) {
fail();
}
OrcidClient client2 = new OrcidClient();
client2.setDisplayName("Name");
client2.setRedirectUris(redirectUris);
client2.setShortDescription("Description");
client2.setType(ClientType.UPDATER);
client2.setWebsite("http://site.com");
// Add other client should fail
try {
orcidClientGroupManager.createAndPersistClientProfile(createdGroup.getGroupOrcid(), client2);
fail();
} catch (OrcidClientGroupManagementException e) {
}
}
use of org.orcid.jaxb.model.clientgroup.RedirectUri in project ORCID-Source by ORCID.
the class OrcidClientGroupManagerTest method testAddCreatorToBasicGroup.
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void testAddCreatorToBasicGroup() {
final OrcidClientGroup group = new OrcidClientGroup();
group.setGroupName("Elsevier");
group.setEmail("basic-member@elsevier.com" + System.currentTimeMillis());
group.setType(MemberType.PREMIUM);
OrcidClientGroup createdGroup = transactionTemplate.execute(new TransactionCallback<OrcidClientGroup>() {
public OrcidClientGroup doInTransaction(TransactionStatus status) {
return orcidClientGroupManager.createOrUpdateOrcidClientGroup(group);
}
});
RedirectUris redirectUris = new RedirectUris();
RedirectUri redirectUri = new RedirectUri("http://uri.com");
redirectUris.getRedirectUri().add(redirectUri);
OrcidClient client1 = new OrcidClient();
client1.setDisplayName("Name");
client1.setRedirectUris(redirectUris);
client1.setShortDescription("Description");
client1.setType(ClientType.CREATOR);
client1.setWebsite("http://site.com");
// Add one creator client to a basic group should fail
try {
OrcidClient orcidClient = orcidClientGroupManager.createAndPersistClientProfile(createdGroup.getGroupOrcid(), client1);
assertEquals(ClientType.UPDATER, orcidClient.getType());
} catch (OrcidClientGroupManagementException e) {
}
}
Aggregations