package org.apereo.cas.configuration.model.support.saml.sps; import java.util.Arrays; /** * This is {@link SamlServiceProviderProperties}. * * @author Misagh Moayyed * @since 5.0.0 */ public class SamlServiceProviderProperties { private static final String EMAIL = "email"; private static final String PRINCIPAL_NAME = "eduPersonPrincipalName"; private Dropbox dropbox = new Dropbox(); private Workday workday = new Workday(); private SAManage saManage = new SAManage(); private Salesforce salesforce = new Salesforce(); private ServiceNow serviceNow = new ServiceNow(); private Box box = new Box(); private NetPartner netPartner = new NetPartner(); private Webex webex = new Webex(); private Office365 office365 = new Office365(); private TestShib testShib = new TestShib(); private InCommon inCommon = new InCommon(); private Zoom zoom = new Zoom(); private Evernote evernote = new Evernote(); private Asana asana = new Asana(); private Gartner gartner = new Gartner(); private Tableau tableau = new Tableau(); private WebAdvisor webAdvisor = new WebAdvisor(); private OpenAthens openAthens = new OpenAthens(); private ArcGIS arcGIS = new ArcGIS(); private BenefitFocus benefitFocus = new BenefitFocus(); private AdobeCloud adobeCloud = new AdobeCloud(); private AcademicWorks academicWorks = new AcademicWorks(); private EasyIep easyIep = new EasyIep(); private InfiniteCampus infiniteCampus = new InfiniteCampus(); private SecuringTheHuman sansSth = new SecuringTheHuman(); private Slack slack = new Slack(); private Zendesk zendesk = new Zendesk(); public Gartner getGartner() { return gartner; } public void setGartner(final Gartner gartner) { this.gartner = gartner; } public Zendesk getZendesk() { return zendesk; } public void setZendesk(final Zendesk zendesk) { this.zendesk = zendesk; } public Slack getSlack() { return slack; } public void setSlack(final Slack slack) { this.slack = slack; } public SecuringTheHuman getSansSth() { return sansSth; } public void setSansSth(final SecuringTheHuman sansSth) { this.sansSth = sansSth; } public InfiniteCampus getInfiniteCampus() { return infiniteCampus; } public void setInfiniteCampus(final InfiniteCampus infiniteCampus) { this.infiniteCampus = infiniteCampus; } public EasyIep getEasyIep() { return easyIep; } public void setEasyIep(final EasyIep easyIep) { this.easyIep = easyIep; } public AcademicWorks getAcademicWorks() { return academicWorks; } public void setAcademicWorks(final AcademicWorks academicWorks) { this.academicWorks = academicWorks; } public AdobeCloud getAdobeCloud() { return adobeCloud; } public void setAdobeCloud(final AdobeCloud adobeCloud) { this.adobeCloud = adobeCloud; } public ArcGIS getArcGIS() { return arcGIS; } public void setArcGIS(final ArcGIS arcGIS) { this.arcGIS = arcGIS; } public OpenAthens getOpenAthens() { return openAthens; } public void setOpenAthens(final OpenAthens openAthens) { this.openAthens = openAthens; } public WebAdvisor getWebAdvisor() { return webAdvisor; } public void setWebAdvisor(final WebAdvisor webAdvisor) { this.webAdvisor = webAdvisor; } public Tableau getTableau() { return tableau; } public void setTableau(final Tableau tableau) { this.tableau = tableau; } public Asana getAsana() { return asana; } public void setAsana(final Asana asana) { this.asana = asana; } public Evernote getEvernote() { return evernote; } public void setEvernote(final Evernote evernote) { this.evernote = evernote; } public Zoom getZoom() { return zoom; } public void setZoom(final Zoom zoom) { this.zoom = zoom; } public InCommon getInCommon() { return inCommon; } public void setInCommon(final InCommon inCommon) { this.inCommon = inCommon; } public TestShib getTestShib() { return testShib; } public void setTestShib(final TestShib testShib) { this.testShib = testShib; } public Office365 getOffice365() { return office365; } public void setOffice365(final Office365 office365) { this.office365 = office365; } public Webex getWebex() { return webex; } public void setWebex(final Webex webex) { this.webex = webex; } public NetPartner getNetPartner() { return netPartner; } public void setNetPartner(final NetPartner netPartner) { this.netPartner = netPartner; } public ServiceNow getServiceNow() { return serviceNow; } public void setServiceNow(final ServiceNow serviceNow) { this.serviceNow = serviceNow; } public Box getBox() { return box; } public void setBox(final Box box) { this.box = box; } public Salesforce getSalesforce() { return salesforce; } public void setSalesforce(final Salesforce salesforce) { this.salesforce = salesforce; } public SAManage getSaManage() { return saManage; } public void setSaManage(final SAManage saManage) { this.saManage = saManage; } public Workday getWorkday() { return workday; } public void setWorkday(final Workday workday) { this.workday = workday; } public Dropbox getDropbox() { return dropbox; } public void setDropbox(final Dropbox dropbox) { this.dropbox = dropbox; } public BenefitFocus getBenefitFocus() { return benefitFocus; } public void setBenefitFocus(final BenefitFocus benefitFocus) { this.benefitFocus = benefitFocus; } public static class Dropbox extends AbstractSamlSPProperties { public Dropbox() { setNameIdAttribute("mail"); } } public static class Box extends AbstractSamlSPProperties { public Box() { setAttributes(Arrays.asList(EMAIL, "firstName", "lastName")); } } public static class SAManage extends AbstractSamlSPProperties { public SAManage() { setNameIdAttribute("mail"); } } public static class Workday extends AbstractSamlSPProperties { public Workday() { setSignAssertions(true); setSignResponses(true); } } public static class Salesforce extends AbstractSamlSPProperties { public Salesforce() { setAttributes(Arrays.asList("mail", PRINCIPAL_NAME)); } } public static class ServiceNow extends AbstractSamlSPProperties { public ServiceNow() { setAttributes(Arrays.asList(PRINCIPAL_NAME)); } } public static class NetPartner extends AbstractSamlSPProperties { public NetPartner() { setNameIdAttribute("studentId"); } } public static class Office365 extends AbstractSamlSPProperties { public Office365() { setNameIdAttribute("scopedImmutableID"); setAttributes(Arrays.asList("IDPEmail,ImmutableID")); setSignResponses(false); setSignAssertions(true); } } public static class WebAdvisor extends AbstractSamlSPProperties { public WebAdvisor() { setAttributes(Arrays.asList("uid")); } } public static class Webex extends AbstractSamlSPProperties { public Webex() { setNameIdAttribute(EMAIL); setAttributes(Arrays.asList("firstName,lastName")); setSignResponses(false); setSignAssertions(true); } } public static class Tableau extends AbstractSamlSPProperties { public Tableau() { setAttributes(Arrays.asList("username")); } } public static class TestShib extends AbstractSamlSPProperties { public TestShib() { //setMetadata("http://www.testshib.org/metadata/testshib-providers.xml"); setAttributes(Arrays.asList(PRINCIPAL_NAME)); } } public static class Zoom extends AbstractSamlSPProperties { public Zoom() { setNameIdAttribute("mail"); setAttributes(Arrays.asList("mail,sn,givenName")); } } public static class ArcGIS extends AbstractSamlSPProperties { public ArcGIS() { setNameIdAttribute("arcNameId"); setAttributes(Arrays.asList("mail,givenName,arcNameId")); } } public static class InCommon extends AbstractSamlSPProperties { public InCommon() { //setMetadata("http://md.incommon.org/InCommon/InCommon-metadata.xml"); //setSignatureLocation("/etc/cas/config/certs/inc-md-cert.pem"); setAttributes(Arrays.asList(PRINCIPAL_NAME)); } } public static class Evernote extends AbstractSamlSPProperties { public Evernote() { setNameIdAttribute(EMAIL); setNameIdFormat("emailAddress"); } } public static class Asana extends AbstractSamlSPProperties { public Asana() { setNameIdAttribute(EMAIL); setNameIdFormat("emailAddress"); } } public static class OpenAthens extends AbstractSamlSPProperties { public OpenAthens() { //setMetadata("https://login.openathens.net/saml/2/metadata-sp"); setAttributes(Arrays.asList(PRINCIPAL_NAME, EMAIL)); } } public static class BenefitFocus extends AbstractSamlSPProperties { public BenefitFocus() { setNameIdAttribute("benefitFocusUniqueId"); } } public static class AdobeCloud extends AbstractSamlSPProperties { public AdobeCloud() { setAttributes(Arrays.asList("firstName", "lastName", EMAIL)); } } public static class AcademicWorks extends AbstractSamlSPProperties { public AcademicWorks() { setAttributes(Arrays.asList("displayName", EMAIL)); } } public static class EasyIep extends AbstractSamlSPProperties { public EasyIep() { setAttributes(Arrays.asList("employeeId")); } } public static class InfiniteCampus extends AbstractSamlSPProperties { public InfiniteCampus() { setAttributes(Arrays.asList("employeeId")); } } public static class SecuringTheHuman extends AbstractSamlSPProperties { public SecuringTheHuman() { setAttributes(Arrays.asList("firstName", "lastName", EMAIL, "scopedUserId", "department", "reference")); } } public static class Slack extends AbstractSamlSPProperties { public Slack() { setNameIdFormat("persistent"); setAttributes(Arrays.asList("User.Email", "User.Username", "first_name", "last_name")); setNameIdAttribute("employeeId"); } } public static class Zendesk extends AbstractSamlSPProperties { public Zendesk() { setNameIdFormat("emailAddress"); setNameIdAttribute("email"); setAttributes(Arrays.asList("organization", "tags", "phone", "role")); } } public static class Gartner extends AbstractSamlSPProperties { public Gartner() { setAttributes("urn:oid:2.5.4.42", "urn:oid:2.5.4.4", "urn:oid:0.9.2342.19200300.100.1.3"); } } }