Search in sources :

Example 1 with Name

use of com.beanit.asn1bean.compiler.pkix1explicit88.Name in project moh-hnweb by bcgov.

the class FindCandidatesConverter method buildNameSearch.

private List<NameSearchResult> buildNameSearch(FindCandidatesResponse findCandidatesResponse) {
    List<NameSearchResult> nameSearchList = new ArrayList<NameSearchResult>();
    List<FindCandidatesResult> candidatesResult = findCandidatesResponse.getResults();
    if (CollectionUtils.isEmpty(candidatesResult)) {
        return nameSearchList;
    }
    candidatesResult.forEach(ns -> {
        NameSearchResult nameSearchResult = new NameSearchResult();
        nameSearchResult.setPhn(ns.getPerson().getPhn());
        nameSearchResult.setIdentifierTypeCode(IDENTIFIER_TYPE_CODE);
        nameSearchResult.setAssigningAuthority(ASSIGNING_AUTHORITY);
        Name nameObj = ns.getPerson().getDeclaredName();
        if (nameObj == null) {
            nameObj = ns.getPerson().getDocumentedName();
        }
        nameSearchResult.setGender(ns.getPerson().getGender());
        nameSearchResult.setGivenName(nameObj.getFirstGivenName());
        nameSearchResult.setSecondName(Optional.ofNullable(nameObj.getSecondGivenName()).orElse(""));
        nameSearchResult.setSurname(nameObj.getSurname());
        nameSearchResult.setNameTypeCode(nameObj.getType());
        String birthDate = V3MessageUtil.convertDateToString(ns.getPerson().getBirthDate());
        nameSearchResult.setDateOfBirth(birthDate);
        Address address = ns.getPerson().getPhysicalAddress();
        if (address != null) {
            nameSearchResult.setAddress1(ns.getPerson().getPhysicalAddress().getAddressLine1());
            nameSearchResult.setAddress2(ns.getPerson().getPhysicalAddress().getAddressLine2());
            nameSearchResult.setAddress3(ns.getPerson().getPhysicalAddress().getAddressLine3());
            nameSearchResult.setCity(ns.getPerson().getPhysicalAddress().getCity());
            nameSearchResult.setProvince(ns.getPerson().getPhysicalAddress().getProvince());
            nameSearchResult.setPostalCode(ns.getPerson().getPhysicalAddress().getPostalCode());
        }
        Address mailingAddress = ns.getPerson().getMailingAddress();
        if (mailingAddress != null) {
            nameSearchResult.setAddress1(ns.getPerson().getMailingAddress().getAddressLine1());
            nameSearchResult.setAddress2(ns.getPerson().getMailingAddress().getAddressLine2());
            nameSearchResult.setAddress3(ns.getPerson().getMailingAddress().getAddressLine3());
            nameSearchResult.setCity(ns.getPerson().getMailingAddress().getCity());
            nameSearchResult.setProvince(ns.getPerson().getMailingAddress().getProvince());
            nameSearchResult.setPostalCode(ns.getPerson().getMailingAddress().getPostalCode());
        }
        nameSearchResult.setScore(ns.getScore());
        nameSearchList.add(nameSearchResult);
    });
    return nameSearchList;
}
Also used : FindCandidatesResult(ca.bc.gov.hlth.hnweb.model.v3.FindCandidatesResult) NameSearchResult(ca.bc.gov.hlth.hnweb.model.rest.enrollment.NameSearchResult) Address(ca.bc.gov.hlth.hnweb.model.v3.Address) ArrayList(java.util.ArrayList) Name(ca.bc.gov.hlth.hnweb.model.v3.Name)

Example 2 with Name

use of com.beanit.asn1bean.compiler.pkix1explicit88.Name in project moh-hnweb by bcgov.

the class FindCandidatesConverter method convertRequest.

public FindCandidatesRequest convertRequest(NameSearchRequest nameSearchRequest) {
    logger.debug("Find Candidates for Name: [{}] DOB: [{}]", nameSearchRequest.getSurname() + nameSearchRequest.getGivenName(), nameSearchRequest.getDateOfBirth());
    FindCandidatesRequest findCandidatesRequest = new FindCandidatesRequest();
    Name name = new Name();
    name.setSurname(nameSearchRequest.getSurname());
    name.setFirstGivenName(nameSearchRequest.getGivenName());
    name.setSecondGivenName(nameSearchRequest.getSecondName());
    findCandidatesRequest.setName(name);
    findCandidatesRequest.setBirthDate(V3MessageUtil.dateOnlyFormatter.format(nameSearchRequest.getDateOfBirth()));
    findCandidatesRequest.setGender(nameSearchRequest.getGender());
    return findCandidatesRequest;
}
Also used : FindCandidatesRequest(ca.bc.gov.hlth.hnweb.model.v3.FindCandidatesRequest) Name(ca.bc.gov.hlth.hnweb.model.v3.Name)

Example 3 with Name

use of com.beanit.asn1bean.compiler.pkix1explicit88.Name in project diadocsdk-java by diadoc.

the class CertificateHelper method createCMS.

public static byte[] createCMS(byte[] buffer, byte[] sign, Certificate cert, boolean detached, GOSTSignInfoProvider gostSignInfoProvider) throws Exception {
    final ContentInfo all = new ContentInfo();
    all.contentType = new Asn1ObjectIdentifier(new OID(STR_CMS_OID_SIGNED).value);
    final SignedData cms = new SignedData();
    all.content = cms;
    cms.version = new CMSVersion(1);
    // digest
    cms.digestAlgorithms = new DigestAlgorithmIdentifiers(1);
    final DigestAlgorithmIdentifier a = new DigestAlgorithmIdentifier(new OID(gostSignInfoProvider.getDigestOID()).value);
    a.parameters = new Asn1Null();
    cms.digestAlgorithms.elements[0] = a;
    if (detached) {
        cms.encapContentInfo = new EncapsulatedContentInfo(new Asn1ObjectIdentifier(new OID(STR_CMS_OID_DATA).value), null);
    } else {
        cms.encapContentInfo = new EncapsulatedContentInfo(new Asn1ObjectIdentifier(new OID(STR_CMS_OID_DATA).value), new Asn1OctetString(buffer));
    }
    // certificate
    cms.certificates = new CertificateSet(1);
    final ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate certificate = new ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Certificate();
    final Asn1BerDecodeBuffer decodeBuffer = new Asn1BerDecodeBuffer(cert.getEncoded());
    certificate.decode(decodeBuffer);
    cms.certificates.elements = new CertificateChoices[1];
    cms.certificates.elements[0] = new CertificateChoices();
    cms.certificates.elements[0].set_certificate(certificate);
    // signer info
    cms.signerInfos = new SignerInfos(1);
    cms.signerInfos.elements[0] = new SignerInfo();
    cms.signerInfos.elements[0].version = new CMSVersion(1);
    cms.signerInfos.elements[0].sid = new SignerIdentifier();
    final byte[] encodedName = ((X509Certificate) cert).getIssuerX500Principal().getEncoded();
    final Asn1BerDecodeBuffer nameBuf = new Asn1BerDecodeBuffer(encodedName);
    final Name name = new Name();
    name.decode(nameBuf);
    final CertificateSerialNumber num = new CertificateSerialNumber(((X509Certificate) cert).getSerialNumber());
    cms.signerInfos.elements[0].sid.set_issuerAndSerialNumber(new IssuerAndSerialNumber(name, num));
    cms.signerInfos.elements[0].digestAlgorithm = new DigestAlgorithmIdentifier(new OID(gostSignInfoProvider.getDigestOID()).value);
    cms.signerInfos.elements[0].digestAlgorithm.parameters = new Asn1Null();
    cms.signerInfos.elements[0].signatureAlgorithm = new SignatureAlgorithmIdentifier(new OID(gostSignInfoProvider.getSignOID()).value);
    cms.signerInfos.elements[0].signatureAlgorithm.parameters = new Asn1Null();
    cms.signerInfos.elements[0].signature = new SignatureValue(sign);
    // encode
    final Asn1BerEncodeBuffer asnBuf = new Asn1BerEncodeBuffer();
    all.encode(asnBuf, true);
    return asnBuf.getMsgCopy();
}
Also used : Name(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.Name) CertificateSerialNumber(ru.CryptoPro.JCP.ASN.PKIX1Explicit88.CertificateSerialNumber) OID(ru.CryptoPro.JCP.params.OID) Certificate(java.security.cert.Certificate)

Example 4 with Name

use of com.beanit.asn1bean.compiler.pkix1explicit88.Name in project ORCID-Source by ORCID.

the class OrcidInfo method publicPreview.

@RequestMapping(value = { "/{orcid:(?:\\d{4}-){3,}\\d{3}[\\dX]}", "/{orcid:(?:\\d{4}-){3,}\\d{3}[\\dX]}/print" })
public ModelAndView publicPreview(HttpServletRequest request, @RequestParam(value = "page", defaultValue = "1") int pageNo, @RequestParam(value = "v", defaultValue = "0") int v, @RequestParam(value = "maxResults", defaultValue = "15") int maxResults, @PathVariable("orcid") String orcid) {
    ProfileEntity profile = null;
    try {
        profile = profileEntityCacheManager.retrieve(orcid);
    } catch (Exception e) {
        return new ModelAndView("error-404");
    }
    try {
        // Check if the profile is deprecated, non claimed or locked
        orcidSecurityManager.checkProfile(orcid);
    } catch (OrcidDeprecatedException | OrcidNotClaimedException | LockedException e) {
        ModelAndView mav = new ModelAndView("public_profile_unavailable");
        mav.addObject("effectiveUserOrcid", orcid);
        String displayName = "";
        if (e instanceof OrcidDeprecatedException) {
            PersonalDetails publicPersonalDetails = personalDetailsManager.getPublicPersonalDetails(orcid);
            if (publicPersonalDetails.getName() != null) {
                Name name = publicPersonalDetails.getName();
                if (name.getVisibility().equals(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC)) {
                    if (name.getCreditName() != null && !PojoUtil.isEmpty(name.getCreditName().getContent())) {
                        displayName = name.getCreditName().getContent();
                    } else {
                        if (name.getGivenNames() != null && !PojoUtil.isEmpty(name.getGivenNames().getContent())) {
                            displayName = name.getGivenNames().getContent() + " ";
                        }
                        if (name.getFamilyName() != null && !PojoUtil.isEmpty(name.getFamilyName().getContent())) {
                            displayName += name.getFamilyName().getContent();
                        }
                    }
                }
            }
            mav.addObject("deprecated", true);
            mav.addObject("primaryRecord", profile.getPrimaryRecord().getId());
        } else if (e instanceof OrcidNotClaimedException) {
            displayName = localeManager.resolveMessage("orcid.reserved_for_claim");
        } else {
            mav.addObject("locked", true);
            mav.addObject("isPublicProfile", true);
            displayName = localeManager.resolveMessage("public_profile.deactivated.given_names") + " " + localeManager.resolveMessage("public_profile.deactivated.family_name");
        }
        if (!PojoUtil.isEmpty(displayName)) {
            mav.addObject("title", getMessage("layout.public-layout.title", displayName, orcid));
            mav.addObject("displayName", displayName);
        }
        return mav;
    }
    long lastModifiedTime = getLastModifiedTime(orcid);
    ModelAndView mav = null;
    if (request.getRequestURI().contains("/print")) {
        mav = new ModelAndView("print_public_record");
        mav.addObject("hideUserVoiceScript", true);
    } else {
        mav = new ModelAndView("public_profile_v3");
    }
    mav.addObject("isPublicProfile", true);
    mav.addObject("effectiveUserOrcid", orcid);
    mav.addObject("lastModifiedTime", lastModifiedTime);
    boolean isProfileEmtpy = true;
    HttpSession session = request.getSession(false);
    if (session != null) {
        session.removeAttribute(PUBLIC_WORKS_RESULTS_ATTRIBUTE);
    }
    PersonalDetails publicPersonalDetails = personalDetailsManager.getPublicPersonalDetails(orcid);
    // Fill personal details
    if (publicPersonalDetails != null) {
        // Get display name
        String displayName = "";
        if (publicPersonalDetails.getName() != null) {
            Name name = publicPersonalDetails.getName();
            if (name.getVisibility().equals(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC)) {
                if (name.getCreditName() != null && !PojoUtil.isEmpty(name.getCreditName().getContent())) {
                    displayName = name.getCreditName().getContent();
                } else {
                    if (name.getGivenNames() != null && !PojoUtil.isEmpty(name.getGivenNames().getContent())) {
                        displayName = name.getGivenNames().getContent() + " ";
                    }
                    if (name.getFamilyName() != null && !PojoUtil.isEmpty(name.getFamilyName().getContent())) {
                        displayName += name.getFamilyName().getContent();
                    }
                }
            }
        }
        if (!PojoUtil.isEmpty(displayName)) {
            // <Published Name> (<ORCID iD>) - ORCID | Connecting Research
            // and Researchers
            mav.addObject("title", getMessage("layout.public-layout.title", displayName.trim(), orcid));
            mav.addObject("displayName", displayName);
        }
        // Get biography
        if (publicPersonalDetails.getBiography() != null) {
            Biography bio = publicPersonalDetails.getBiography();
            if (org.orcid.jaxb.model.common_v2.Visibility.PUBLIC.equals(bio.getVisibility()) && !PojoUtil.isEmpty(bio.getContent())) {
                isProfileEmtpy = false;
                mav.addObject("biography", bio);
            }
        }
        // Fill other names
        OtherNames publicOtherNames = publicPersonalDetails.getOtherNames();
        if (publicOtherNames != null && publicOtherNames.getOtherNames() != null) {
            Iterator<OtherName> it = publicOtherNames.getOtherNames().iterator();
            while (it.hasNext()) {
                OtherName otherName = it.next();
                if (!org.orcid.jaxb.model.common_v2.Visibility.PUBLIC.equals(otherName.getVisibility())) {
                    it.remove();
                }
            }
        }
        Map<String, List<OtherName>> groupedOtherNames = groupOtherNames(publicOtherNames);
        mav.addObject("publicGroupedOtherNames", groupedOtherNames);
    }
    // Fill biography elements
    // Fill country
    Addresses publicAddresses = addressManager.getPublicAddresses(orcid, lastModifiedTime);
    Map<String, String> countryNames = new HashMap<String, String>();
    if (publicAddresses != null && publicAddresses.getAddress() != null) {
        Address publicAddress = null;
        // The primary address will be the one with the lowest display index
        for (Address address : publicAddresses.getAddress()) {
            countryNames.put(address.getCountry().getValue().value(), getcountryName(address.getCountry().getValue().value()));
            if (publicAddress == null) {
                publicAddress = address;
            }
        }
        if (publicAddress != null) {
            mav.addObject("publicAddress", publicAddress);
            mav.addObject("countryNames", countryNames);
            Map<String, List<Address>> groupedAddresses = groupAddresses(publicAddresses);
            mav.addObject("publicGroupedAddresses", groupedAddresses);
        }
    }
    // Fill keywords
    Keywords publicKeywords = keywordManager.getPublicKeywords(orcid, lastModifiedTime);
    Map<String, List<Keyword>> groupedKeywords = groupKeywords(publicKeywords);
    mav.addObject("publicGroupedKeywords", groupedKeywords);
    // Fill researcher urls
    ResearcherUrls publicResearcherUrls = researcherUrlManager.getPublicResearcherUrls(orcid, lastModifiedTime);
    Map<String, List<ResearcherUrl>> groupedResearcherUrls = groupResearcherUrls(publicResearcherUrls);
    mav.addObject("publicGroupedResearcherUrls", groupedResearcherUrls);
    // Fill emails
    Emails publicEmails = emailManager.getPublicEmails(orcid, lastModifiedTime);
    Map<String, List<Email>> groupedEmails = groupEmails(publicEmails);
    mav.addObject("publicGroupedEmails", groupedEmails);
    // Fill external identifiers
    PersonExternalIdentifiers publicPersonExternalIdentifiers = externalIdentifierManager.getPublicExternalIdentifiers(orcid, lastModifiedTime);
    Map<String, List<PersonExternalIdentifier>> groupedExternalIdentifiers = groupExternalIdentifiers(publicPersonExternalIdentifiers);
    mav.addObject("publicGroupedPersonExternalIdentifiers", groupedExternalIdentifiers);
    LinkedHashMap<Long, WorkForm> minimizedWorksMap = new LinkedHashMap<>();
    LinkedHashMap<Long, Affiliation> affiliationMap = new LinkedHashMap<>();
    LinkedHashMap<Long, Funding> fundingMap = new LinkedHashMap<>();
    LinkedHashMap<Long, PeerReview> peerReviewMap = new LinkedHashMap<>();
    minimizedWorksMap = activityCacheManager.pubMinWorksMap(orcid, lastModifiedTime);
    if (minimizedWorksMap.size() > 0) {
        isProfileEmtpy = false;
    } else {
        mav.addObject("worksEmpty", true);
    }
    affiliationMap = affiliationMap(orcid, lastModifiedTime);
    if (affiliationMap.size() > 0) {
        isProfileEmtpy = false;
    } else {
        mav.addObject("affiliationsEmpty", true);
    }
    fundingMap = fundingMap(orcid, lastModifiedTime);
    if (fundingMap.size() > 0)
        isProfileEmtpy = false;
    else {
        mav.addObject("fundingEmpty", true);
    }
    peerReviewMap = peerReviewMap(orcid, lastModifiedTime);
    if (peerReviewMap.size() > 0) {
        isProfileEmtpy = false;
    } else {
        mav.addObject("peerReviewsEmpty", true);
    }
    ObjectMapper mapper = new ObjectMapper();
    try {
        String worksIdsJson = mapper.writeValueAsString(minimizedWorksMap.keySet());
        String affiliationIdsJson = mapper.writeValueAsString(affiliationMap.keySet());
        String fundingIdsJson = mapper.writeValueAsString(fundingMap.keySet());
        String peerReviewIdsJson = mapper.writeValueAsString(peerReviewMap.keySet());
        mav.addObject("workIdsJson", StringEscapeUtils.escapeEcmaScript(worksIdsJson));
        mav.addObject("affiliationIdsJson", StringEscapeUtils.escapeEcmaScript(affiliationIdsJson));
        mav.addObject("fundingIdsJson", StringEscapeUtils.escapeEcmaScript(fundingIdsJson));
        mav.addObject("peerReviewIdsJson", StringEscapeUtils.escapeEcmaScript(peerReviewIdsJson));
        mav.addObject("isProfileEmpty", isProfileEmtpy);
    } catch (JsonGenerationException e) {
        e.printStackTrace();
    } catch (JsonMappingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (!profile.isReviewed()) {
        if (isProfileValidForIndex(profile)) {
            int countTokens = orcidOauth2TokenService.findCountByUserName(orcid, lastModifiedTime);
            if (!profile.isAccountNonLocked() || countTokens == 0 || (!CreationMethod.WEBSITE.value().equals(profile.getCreationMethod()) && !CreationMethod.DIRECT.value().equals(profile.getCreationMethod()))) {
                mav.addObject("noIndex", true);
            }
        } else {
            mav.addObject("noIndex", true);
        }
    }
    return mav;
}
Also used : Keywords(org.orcid.jaxb.model.record_v2.Keywords) Address(org.orcid.jaxb.model.record_v2.Address) OtherNames(org.orcid.jaxb.model.record_v2.OtherNames) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Funding(org.orcid.jaxb.model.record_v2.Funding) ModelAndView(org.springframework.web.servlet.ModelAndView) OtherName(org.orcid.jaxb.model.record_v2.OtherName) Name(org.orcid.jaxb.model.record_v2.Name) LinkedHashMap(java.util.LinkedHashMap) Addresses(org.orcid.jaxb.model.record_v2.Addresses) JsonMappingException(com.fasterxml.jackson.databind.JsonMappingException) Biography(org.orcid.jaxb.model.record_v2.Biography) ResearcherUrls(org.orcid.jaxb.model.record_v2.ResearcherUrls) List(java.util.List) ArrayList(java.util.ArrayList) Emails(org.orcid.jaxb.model.record_v2.Emails) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Affiliation(org.orcid.jaxb.model.record_v2.Affiliation) LockedException(org.orcid.core.security.aop.LockedException) HttpSession(javax.servlet.http.HttpSession) OtherName(org.orcid.jaxb.model.record_v2.OtherName) IOException(java.io.IOException) PersonalDetails(org.orcid.jaxb.model.record_v2.PersonalDetails) ProfileEntity(org.orcid.persistence.jpa.entities.ProfileEntity) OrcidNotClaimedException(org.orcid.core.exception.OrcidNotClaimedException) OrcidDeprecatedException(org.orcid.core.exception.OrcidDeprecatedException) LockedException(org.orcid.core.security.aop.LockedException) JsonMappingException(com.fasterxml.jackson.databind.JsonMappingException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) JsonGenerationException(com.fasterxml.jackson.core.JsonGenerationException) IOException(java.io.IOException) WorkForm(org.orcid.pojo.ajaxForm.WorkForm) PersonExternalIdentifiers(org.orcid.jaxb.model.record_v2.PersonExternalIdentifiers) OrcidDeprecatedException(org.orcid.core.exception.OrcidDeprecatedException) OrcidNotClaimedException(org.orcid.core.exception.OrcidNotClaimedException) JsonGenerationException(com.fasterxml.jackson.core.JsonGenerationException) PeerReview(org.orcid.jaxb.model.record_v2.PeerReview) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with Name

use of com.beanit.asn1bean.compiler.pkix1explicit88.Name in project ORCID-Source by ORCID.

the class OrcidSecurityManager_FullRecordTest method testRecord_When_MixedVisibility_NoSource_ReadLimitedToken.

@Test
public void testRecord_When_MixedVisibility_NoSource_ReadLimitedToken() {
    SecurityContextTestUtils.setUpSecurityContext(ORCID_1, CLIENT_1, ScopePathType.READ_LIMITED);
    Name name = createName(Visibility.LIMITED);
    Biography bio = createBiography(Visibility.PRIVATE);
    Address a1 = createAddress(Visibility.PUBLIC, CLIENT_2);
    Address a2 = createAddress(Visibility.LIMITED, CLIENT_2);
    Address a3 = createAddress(Visibility.PRIVATE, CLIENT_2);
    Addresses addresses = new Addresses();
    addresses.setAddress(new ArrayList<Address>(Arrays.asList(a1, a2, a3)));
    Email e1 = createEmail(Visibility.PUBLIC, CLIENT_2);
    Email e2 = createEmail(Visibility.LIMITED, CLIENT_2);
    Email e3 = createEmail(Visibility.PRIVATE, CLIENT_2);
    Emails emails = new Emails();
    emails.setEmails(new ArrayList<Email>(Arrays.asList(e1, e2, e3)));
    Keyword k1 = createKeyword(Visibility.PUBLIC, CLIENT_2);
    Keyword k2 = createKeyword(Visibility.LIMITED, CLIENT_2);
    Keyword k3 = createKeyword(Visibility.PRIVATE, CLIENT_2);
    Keywords keywords = new Keywords();
    keywords.setKeywords(new ArrayList<Keyword>(Arrays.asList(k1, k2, k3)));
    OtherName o1 = createOtherName(Visibility.PUBLIC, CLIENT_2);
    OtherName o2 = createOtherName(Visibility.LIMITED, CLIENT_2);
    OtherName o3 = createOtherName(Visibility.PRIVATE, CLIENT_2);
    OtherNames otherNames = new OtherNames();
    otherNames.setOtherNames(new ArrayList<OtherName>(Arrays.asList(o1, o2, o3)));
    PersonExternalIdentifier ext1 = createPersonExternalIdentifier(Visibility.PUBLIC, CLIENT_2);
    PersonExternalIdentifier ext2 = createPersonExternalIdentifier(Visibility.LIMITED, CLIENT_2);
    PersonExternalIdentifier ext3 = createPersonExternalIdentifier(Visibility.PRIVATE, CLIENT_2);
    PersonExternalIdentifiers extIds = new PersonExternalIdentifiers();
    extIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(Arrays.asList(ext1, ext2, ext3)));
    ResearcherUrl r1 = createResearcherUrl(Visibility.PUBLIC, CLIENT_2);
    ResearcherUrl r2 = createResearcherUrl(Visibility.LIMITED, CLIENT_2);
    ResearcherUrl r3 = createResearcherUrl(Visibility.PRIVATE, CLIENT_2);
    ResearcherUrls researcherUrls = new ResearcherUrls();
    researcherUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(Arrays.asList(r1, r2, r3)));
    EducationSummary edu1 = createEducationSummary(Visibility.PUBLIC, CLIENT_2);
    EducationSummary edu2 = createEducationSummary(Visibility.LIMITED, CLIENT_2);
    EducationSummary edu3 = createEducationSummary(Visibility.PRIVATE, CLIENT_2);
    EmploymentSummary em1 = createEmploymentSummary(Visibility.PUBLIC, CLIENT_2);
    EmploymentSummary em2 = createEmploymentSummary(Visibility.LIMITED, CLIENT_2);
    EmploymentSummary em3 = createEmploymentSummary(Visibility.PRIVATE, CLIENT_2);
    FundingSummary f1 = createFundingSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    FundingSummary f2 = createFundingSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    FundingSummary f3 = createFundingSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    PeerReviewSummary p1 = createPeerReviewSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    PeerReviewSummary p2 = createPeerReviewSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    PeerReviewSummary p3 = createPeerReviewSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    WorkSummary w1 = createWorkSummary(Visibility.PUBLIC, CLIENT_2, EXTID_1);
    WorkSummary w2 = createWorkSummary(Visibility.LIMITED, CLIENT_2, EXTID_2);
    WorkSummary w3 = createWorkSummary(Visibility.PRIVATE, CLIENT_2, EXTID_3);
    ActivitiesSummary as = new ActivitiesSummary();
    as.setEducations(createEducations(edu1, edu2, edu3));
    as.setEmployments(createEmployments(em1, em2, em3));
    as.setFundings(createFundings(f1, f2, f3));
    as.setPeerReviews(createPeerReviews(p1, p2, p3));
    as.setWorks(createWorks(w1, w2, w3));
    Person p = new Person();
    p.setBiography(bio);
    p.setName(name);
    p.setAddresses(addresses);
    p.setEmails(emails);
    p.setExternalIdentifiers(extIds);
    p.setKeywords(keywords);
    p.setOtherNames(otherNames);
    p.setResearcherUrls(researcherUrls);
    Record record = new Record();
    record.setActivitiesSummary(as);
    record.setPerson(p);
    orcidSecurityManager.checkAndFilter(ORCID_1, record);
    assertNotNull(record);
    // Check person
    assertEquals(name, p.getName());
    assertNull(p.getBiography());
    // Check addresses
    assertEquals(2, p.getAddresses().getAddress().size());
    assertTrue(p.getAddresses().getAddress().contains(a1));
    assertTrue(p.getAddresses().getAddress().contains(a2));
    assertFalse(p.getAddresses().getAddress().contains(a3));
    // Check emails
    assertEquals(2, p.getEmails().getEmails().size());
    assertTrue(p.getEmails().getEmails().contains(e1));
    assertTrue(p.getEmails().getEmails().contains(e2));
    assertFalse(p.getEmails().getEmails().contains(e3));
    // Check ext ids
    assertEquals(2, p.getExternalIdentifiers().getExternalIdentifiers().size());
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext1));
    assertTrue(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext2));
    assertFalse(p.getExternalIdentifiers().getExternalIdentifiers().contains(ext3));
    // Check keywords
    assertEquals(2, p.getKeywords().getKeywords().size());
    assertTrue(p.getKeywords().getKeywords().contains(k1));
    assertTrue(p.getKeywords().getKeywords().contains(k2));
    assertFalse(p.getKeywords().getKeywords().contains(k3));
    // Check other names
    assertEquals(2, p.getOtherNames().getOtherNames().size());
    assertTrue(p.getOtherNames().getOtherNames().contains(o1));
    assertTrue(p.getOtherNames().getOtherNames().contains(o2));
    assertFalse(p.getOtherNames().getOtherNames().contains(o3));
    // Check researcher urls
    assertEquals(2, p.getResearcherUrls().getResearcherUrls().size());
    assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r1));
    assertTrue(p.getResearcherUrls().getResearcherUrls().contains(r2));
    assertFalse(p.getResearcherUrls().getResearcherUrls().contains(r3));
    // Check activities
    assertNotNull(as);
    // Check educations
    assertEquals(2, as.getEducations().getSummaries().size());
    assertTrue(as.getEducations().getSummaries().contains(edu1));
    assertTrue(as.getEducations().getSummaries().contains(edu2));
    assertFalse(as.getEducations().getSummaries().contains(edu3));
    // Check employments
    assertEquals(2, as.getEmployments().getSummaries().size());
    assertTrue(as.getEmployments().getSummaries().contains(em1));
    assertTrue(as.getEmployments().getSummaries().contains(em2));
    assertFalse(as.getEmployments().getSummaries().contains(em3));
    // Check fundings
    assertEquals(1, as.getFundings().getFundingGroup().size());
    assertEquals(2, as.getFundings().getFundingGroup().get(0).getActivities().size());
    assertTrue(as.getFundings().getFundingGroup().get(0).getActivities().contains(f1));
    assertTrue(as.getFundings().getFundingGroup().get(0).getActivities().contains(f2));
    assertFalse(as.getFundings().getFundingGroup().get(0).getActivities().contains(f3));
    assertEquals(3, as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
    assertFalse(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
    assertTrue(as.getFundings().getFundingGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
    // Check peer reviews
    assertEquals(1, as.getPeerReviews().getPeerReviewGroup().size());
    assertEquals(2, as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().size());
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p1));
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p2));
    assertFalse(as.getPeerReviews().getPeerReviewGroup().get(0).getActivities().contains(p3));
    assertEquals(1, as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getPeerReviews().getPeerReviewGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED, "peer-review")));
    // Check works
    assertEquals(1, as.getWorks().getWorkGroup().size());
    assertEquals(2, as.getWorks().getWorkGroup().get(0).getActivities().size());
    assertTrue(as.getWorks().getWorkGroup().get(0).getActivities().contains(w1));
    assertTrue(as.getWorks().getWorkGroup().get(0).getActivities().contains(w2));
    assertFalse(as.getWorks().getWorkGroup().get(0).getActivities().contains(w3));
    assertEquals(3, as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_1)));
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_2)));
    assertFalse(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_3)));
    assertTrue(as.getWorks().getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().contains(getExtId(EXTID_SHARED)));
}
Also used : Email(org.orcid.jaxb.model.record_v2.Email) Keywords(org.orcid.jaxb.model.record_v2.Keywords) Address(org.orcid.jaxb.model.record_v2.Address) OtherNames(org.orcid.jaxb.model.record_v2.OtherNames) OtherName(org.orcid.jaxb.model.record_v2.OtherName) Name(org.orcid.jaxb.model.record_v2.Name) ActivitiesSummary(org.orcid.jaxb.model.record.summary_v2.ActivitiesSummary) Addresses(org.orcid.jaxb.model.record_v2.Addresses) WorkSummary(org.orcid.jaxb.model.record.summary_v2.WorkSummary) Biography(org.orcid.jaxb.model.record_v2.Biography) FundingSummary(org.orcid.jaxb.model.record.summary_v2.FundingSummary) ResearcherUrls(org.orcid.jaxb.model.record_v2.ResearcherUrls) ResearcherUrl(org.orcid.jaxb.model.record_v2.ResearcherUrl) Record(org.orcid.jaxb.model.record_v2.Record) Emails(org.orcid.jaxb.model.record_v2.Emails) Keyword(org.orcid.jaxb.model.record_v2.Keyword) OtherName(org.orcid.jaxb.model.record_v2.OtherName) PersonExternalIdentifier(org.orcid.jaxb.model.record_v2.PersonExternalIdentifier) PersonExternalIdentifiers(org.orcid.jaxb.model.record_v2.PersonExternalIdentifiers) EducationSummary(org.orcid.jaxb.model.record.summary_v2.EducationSummary) PeerReviewSummary(org.orcid.jaxb.model.record.summary_v2.PeerReviewSummary) EmploymentSummary(org.orcid.jaxb.model.record.summary_v2.EmploymentSummary) Person(org.orcid.jaxb.model.record_v2.Person) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)77 Name (org.orcid.jaxb.model.record_v2.Name)74 OtherName (org.orcid.jaxb.model.record_v2.OtherName)62 Biography (org.orcid.jaxb.model.record_v2.Biography)46 OtherNames (org.orcid.jaxb.model.record_v2.OtherNames)41 Address (org.orcid.jaxb.model.record_v2.Address)31 Email (org.orcid.jaxb.model.record_v2.Email)30 ResearcherUrl (org.orcid.jaxb.model.record_v2.ResearcherUrl)30 Addresses (org.orcid.jaxb.model.record_v2.Addresses)29 Emails (org.orcid.jaxb.model.record_v2.Emails)29 Keyword (org.orcid.jaxb.model.record_v2.Keyword)29 PersonExternalIdentifier (org.orcid.jaxb.model.record_v2.PersonExternalIdentifier)29 ResearcherUrls (org.orcid.jaxb.model.record_v2.ResearcherUrls)29 Keywords (org.orcid.jaxb.model.record_v2.Keywords)28 Person (org.orcid.jaxb.model.record_v2.Person)28 PersonExternalIdentifiers (org.orcid.jaxb.model.record_v2.PersonExternalIdentifiers)28 Record (org.orcid.jaxb.model.record_v2.Record)19 WorkSummary (org.orcid.jaxb.model.record.summary_v2.WorkSummary)18 EducationSummary (org.orcid.jaxb.model.record.summary_v2.EducationSummary)17 EmploymentSummary (org.orcid.jaxb.model.record.summary_v2.EmploymentSummary)17