Search in sources :

Example 1 with AbstractRegisteredService

use of org.apereo.cas.services.AbstractRegisteredService in project cas by apereo.

the class GrouperRegisteredServiceAccessStrategyRegistryTests method checkAccessStrategyJson.

@Test
public void checkAccessStrategyJson() throws Exception {
    final Map<String, Set<String>> attributes = new HashMap<>();
    final Set<String> v1 = new HashSet<>();
    v1.add("admin");
    attributes.put("memberOf", v1);
    final AbstractRegisteredService service = RegisteredServiceTestUtils.getRegisteredService("test");
    final GrouperRegisteredServiceAccessStrategy grouper = new GrouperRegisteredServiceAccessStrategy();
    grouper.setRequiredAttributes(attributes);
    service.setAccessStrategy(grouper);
    final JsonServiceRegistryDao dao = new JsonServiceRegistryDao(RESOURCE, false, mock(ApplicationEventPublisher.class));
    dao.save(service);
    dao.load();
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) JsonServiceRegistryDao(org.apereo.cas.services.JsonServiceRegistryDao) ApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 2 with AbstractRegisteredService

use of org.apereo.cas.services.AbstractRegisteredService in project cas by apereo.

the class LdapServiceRegistryDaoTests method verifyUpdatingServices.

@Test
public void verifyUpdatingServices() {
    this.dao.save(getRegexRegisteredService());
    final List<RegisteredService> services = this.dao.load();
    final AbstractRegisteredService rs = (AbstractRegisteredService) this.dao.findServiceById(services.get(0).getId());
    assertNotNull(rs);
    rs.setEvaluationOrder(9999);
    rs.setUsernameAttributeProvider(new DefaultRegisteredServiceUsernameProvider());
    rs.setName("Another Test Service");
    rs.setDescription("The new description");
    rs.setServiceId("https://hello.world");
    rs.setProxyPolicy(new RegexMatchingRegisteredServiceProxyPolicy("https"));
    rs.setAttributeReleasePolicy(new ReturnAllowedAttributeReleasePolicy());
    assertNotNull(this.dao.save(rs));
    final RegisteredService rs3 = this.dao.findServiceById(rs.getId());
    assertEquals(rs3.getName(), rs.getName());
    assertEquals(rs3.getDescription(), rs.getDescription());
    assertEquals(rs3.getEvaluationOrder(), rs.getEvaluationOrder());
    assertEquals(rs3.getUsernameAttributeProvider(), rs.getUsernameAttributeProvider());
    assertEquals(rs3.getProxyPolicy(), rs.getProxyPolicy());
    assertEquals(rs3.getUsernameAttributeProvider(), rs.getUsernameAttributeProvider());
    assertEquals(rs3.getServiceId(), rs.getServiceId());
}
Also used : RegexRegisteredService(org.apereo.cas.services.RegexRegisteredService) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) OAuthRegisteredService(org.apereo.cas.support.oauth.services.OAuthRegisteredService) RegisteredService(org.apereo.cas.services.RegisteredService) DefaultRegisteredServiceUsernameProvider(org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider) ReturnAllowedAttributeReleasePolicy(org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy) RegexMatchingRegisteredServiceProxyPolicy(org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 3 with AbstractRegisteredService

use of org.apereo.cas.services.AbstractRegisteredService in project cas by apereo.

the class LdapServiceRegistryDaoTests method getRegexRegisteredService.

private static RegisteredService getRegexRegisteredService() {
    final AbstractRegisteredService rs = new RegexRegisteredService();
    rs.setName("Service Name Regex");
    rs.setProxyPolicy(new RefuseRegisteredServiceProxyPolicy());
    rs.setUsernameAttributeProvider(new AnonymousRegisteredServiceUsernameAttributeProvider(new ShibbolethCompatiblePersistentIdGenerator("hello")));
    rs.setDescription("Service description");
    rs.setServiceId("^http?://.+");
    rs.setTheme("the theme name");
    rs.setEvaluationOrder(123);
    rs.setDescription("Here is another description");
    rs.setRequiredHandlers(Stream.of("handler1", "handler2").collect(Collectors.toSet()));
    final Map<String, RegisteredServiceProperty> propertyMap = new HashMap<>();
    final DefaultRegisteredServiceProperty property = new DefaultRegisteredServiceProperty();
    final Set<String> values = new HashSet<>();
    values.add("value1");
    values.add("value2");
    property.setValues(values);
    propertyMap.put("field1", property);
    rs.setProperties(propertyMap);
    return rs;
}
Also used : AnonymousRegisteredServiceUsernameAttributeProvider(org.apereo.cas.services.AnonymousRegisteredServiceUsernameAttributeProvider) RegisteredServiceProperty(org.apereo.cas.services.RegisteredServiceProperty) DefaultRegisteredServiceProperty(org.apereo.cas.services.DefaultRegisteredServiceProperty) HashMap(java.util.HashMap) ShibbolethCompatiblePersistentIdGenerator(org.apereo.cas.authentication.principal.ShibbolethCompatiblePersistentIdGenerator) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) RegexRegisteredService(org.apereo.cas.services.RegexRegisteredService) RefuseRegisteredServiceProxyPolicy(org.apereo.cas.services.RefuseRegisteredServiceProxyPolicy) DefaultRegisteredServiceProperty(org.apereo.cas.services.DefaultRegisteredServiceProperty) HashSet(java.util.HashSet)

Example 4 with AbstractRegisteredService

use of org.apereo.cas.services.AbstractRegisteredService in project cas by apereo.

the class LdapServiceRegistryDaoTests method verifySavingServiceChangesDn.

@Test
public void verifySavingServiceChangesDn() {
    this.dao.save(getRegexRegisteredService());
    final List<RegisteredService> services = this.dao.load();
    final AbstractRegisteredService rs = (AbstractRegisteredService) this.dao.findServiceById(services.get(0).getId());
    final long originalId = rs.getId();
    assertNotNull(rs);
    rs.setId(666);
    assertNotNull(this.dao.save(rs));
    assertNotEquals(rs.getId(), originalId);
}
Also used : RegexRegisteredService(org.apereo.cas.services.RegexRegisteredService) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) OAuthRegisteredService(org.apereo.cas.support.oauth.services.OAuthRegisteredService) RegisteredService(org.apereo.cas.services.RegisteredService) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 5 with AbstractRegisteredService

use of org.apereo.cas.services.AbstractRegisteredService in project cas by apereo.

the class DefaultRegisteredServiceMapper method toRegisteredService.

@Override
public RegisteredService toRegisteredService(final RegisteredServiceEditBean.ServiceData data) {
    try {
        final AbstractRegisteredService regSvc;
        // create base RegisteredService object
        final String type = data.getType();
        if (StringUtils.equalsIgnoreCase(type, RegisteredServiceTypeEditBean.OAUTH.toString()) || StringUtils.equalsIgnoreCase(type, RegisteredServiceTypeEditBean.OIDC.toString())) {
            if (StringUtils.equalsIgnoreCase(type, RegisteredServiceTypeEditBean.OAUTH.toString())) {
                regSvc = new OAuthRegisteredService();
            } else {
                regSvc = new OidcRegisteredService();
            }
            final RegisteredServiceOAuthTypeEditBean oauthBean = data.getOauth();
            ((OAuthRegisteredService) regSvc).setClientId(oauthBean.getClientId());
            ((OAuthRegisteredService) regSvc).setClientSecret(oauthBean.getClientSecret());
            ((OAuthRegisteredService) regSvc).setBypassApprovalPrompt(oauthBean.isBypass());
            ((OAuthRegisteredService) regSvc).setGenerateRefreshToken(oauthBean.isRefreshToken());
            ((OAuthRegisteredService) regSvc).setJsonFormat(oauthBean.isJsonFormat());
            if (StringUtils.equalsIgnoreCase(type, RegisteredServiceTypeEditBean.OIDC.toString())) {
                ((OidcRegisteredService) regSvc).setJwks(data.getOidc().getJwks());
                ((OidcRegisteredService) regSvc).setSignIdToken(data.getOidc().isSignToken());
                ((OidcRegisteredService) regSvc).setImplicit(data.getOidc().isImplicit());
                ((OidcRegisteredService) regSvc).setEncryptIdToken(data.getOidc().isEncrypt());
                ((OidcRegisteredService) regSvc).setIdTokenEncryptionAlg(data.getOidc().getEncryptAlg());
                ((OidcRegisteredService) regSvc).setIdTokenEncryptionEncoding(data.getOidc().getEncryptEnc());
                ((OidcRegisteredService) regSvc).setScopes(org.springframework.util.StringUtils.commaDelimitedListToSet(data.getOidc().getScopes()));
            }
        } else if (StringUtils.equalsIgnoreCase(type, RegisteredServiceTypeEditBean.SAML.toString())) {
            regSvc = new SamlRegisteredService();
            final RegisteredServiceSamlTypeEditBean samlBean = data.getSaml();
            ((SamlRegisteredService) regSvc).setEncryptAssertions(samlBean.isEncAssert());
            ((SamlRegisteredService) regSvc).setSignAssertions(samlBean.isSignAssert());
            ((SamlRegisteredService) regSvc).setSignResponses(samlBean.isSignResp());
            ((SamlRegisteredService) regSvc).setMetadataLocation(samlBean.getMdLoc());
            ((SamlRegisteredService) regSvc).setMetadataSignatureLocation(samlBean.getMdSigLoc());
            ((SamlRegisteredService) regSvc).setMetadataMaxValidity(samlBean.getMdMaxVal());
            ((SamlRegisteredService) regSvc).setRequiredAuthenticationContextClass(samlBean.getAuthCtxCls());
            ((SamlRegisteredService) regSvc).setMetadataCriteriaRemoveEmptyEntitiesDescriptors(samlBean.isRemoveEmptyEntities());
            ((SamlRegisteredService) regSvc).setMetadataCriteriaRemoveRolelessEntityDescriptors(samlBean.isRemoveRoleless());
            if (StringUtils.isNotBlank(samlBean.getDir())) {
                ((SamlRegisteredService) regSvc).setMetadataCriteriaDirection(samlBean.getDir().toUpperCase());
            }
            if (StringUtils.isNotBlank(samlBean.getMdPattern()) && RegexUtils.isValidRegex(samlBean.getMdPattern())) {
                ((SamlRegisteredService) regSvc).setMetadataCriteriaPattern(samlBean.getMdPattern());
            }
            if (samlBean.getRoles() != null && !samlBean.getRoles().isEmpty()) {
                ((SamlRegisteredService) regSvc).setMetadataCriteriaRoles(org.springframework.util.StringUtils.collectionToCommaDelimitedString(samlBean.getRoles()));
            }
        } else {
            if (RegexUtils.isValidRegex(data.getServiceId())) {
                regSvc = new RegexRegisteredService();
            } else {
                throw new RuntimeException("Invalid service type.");
            }
        }
        // set the assigned Id
        final long assignedId = Long.parseLong(data.getAssignedId());
        if (assignedId <= 0) {
            regSvc.setId(RegisteredService.INITIAL_IDENTIFIER_VALUE);
        } else {
            regSvc.setId(assignedId);
        }
        // set simple RegisteredService properties
        regSvc.setServiceId(data.getServiceId());
        regSvc.setName(data.getName());
        regSvc.setDescription(data.getDescription());
        if (StringUtils.isNotBlank(data.getLogoUrl())) {
            regSvc.setLogo(new URL(data.getLogoUrl()));
        }
        regSvc.setTheme(data.getTheme());
        regSvc.setEvaluationOrder(data.getEvalOrder());
        regSvc.setRequiredHandlers(data.getRequiredHandlers());
        regSvc.setPrivacyUrl(data.getPrivacyUrl());
        regSvc.setInformationUrl(data.getInformationUrl());
        // process logout settings
        regSvc.setLogoutType(parseLogoutType(data.getLogoutType()));
        if (StringUtils.isNotBlank(data.getLogoutUrl())) {
            regSvc.setLogoutUrl(new URL(data.getLogoutUrl()));
        }
        // process the Public Key
        final RegisteredServicePublicKeyEditBean publicKey = data.getPublicKey();
        if (publicKey != null && publicKey.isValid()) {
            regSvc.setPublicKey(new RegisteredServicePublicKeyImpl(publicKey.getLocation(), publicKey.getAlgorithm()));
        }
        final Set<RegisteredServiceEditBean.ServiceData.PropertyBean> props = data.getProperties();
        props.forEach(str -> {
            final DefaultRegisteredServiceProperty value = new DefaultRegisteredServiceProperty();
            value.setValues(org.springframework.util.StringUtils.commaDelimitedListToSet(str.getValue()));
            regSvc.getProperties().put(str.getName(), value);
        });
        return regSvc;
    } catch (final Exception e) {
        throw Throwables.propagate(e);
    }
}
Also used : RegisteredServiceOAuthTypeEditBean(org.apereo.cas.mgmt.services.web.beans.RegisteredServiceOAuthTypeEditBean) OAuthRegisteredService(org.apereo.cas.support.oauth.services.OAuthRegisteredService) OidcRegisteredService(org.apereo.cas.services.OidcRegisteredService) RegisteredServicePublicKeyEditBean(org.apereo.cas.mgmt.services.web.beans.RegisteredServicePublicKeyEditBean) AbstractRegisteredService(org.apereo.cas.services.AbstractRegisteredService) RegisteredServiceEditBean(org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean) URL(java.net.URL) RegisteredServiceSamlTypeEditBean(org.apereo.cas.mgmt.services.web.beans.RegisteredServiceSamlTypeEditBean) DefaultRegisteredServiceProperty(org.apereo.cas.services.DefaultRegisteredServiceProperty) RegisteredServicePublicKeyImpl(org.apereo.cas.services.RegisteredServicePublicKeyImpl) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) RegexRegisteredService(org.apereo.cas.services.RegexRegisteredService)

Aggregations

AbstractRegisteredService (org.apereo.cas.services.AbstractRegisteredService)11 RegexRegisteredService (org.apereo.cas.services.RegexRegisteredService)6 Test (org.junit.Test)6 RegisteredService (org.apereo.cas.services.RegisteredService)4 HashSet (java.util.HashSet)3 OAuthRegisteredService (org.apereo.cas.support.oauth.services.OAuthRegisteredService)3 SamlRegisteredService (org.apereo.cas.support.saml.services.SamlRegisteredService)3 URL (java.net.URL)2 HashMap (java.util.HashMap)2 RegisteredServiceEditBean (org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean)2 DefaultRegisteredServiceProperty (org.apereo.cas.services.DefaultRegisteredServiceProperty)2 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 StringWriter (java.io.StringWriter)1 ArrayList (java.util.ArrayList)1 Set (java.util.Set)1 ShibbolethCompatiblePersistentIdGenerator (org.apereo.cas.authentication.principal.ShibbolethCompatiblePersistentIdGenerator)1 WebApplicationService (org.apereo.cas.authentication.principal.WebApplicationService)1 WebApplicationServiceFactory (org.apereo.cas.authentication.principal.WebApplicationServiceFactory)1 RegisteredServiceOAuthTypeEditBean (org.apereo.cas.mgmt.services.web.beans.RegisteredServiceOAuthTypeEditBean)1 RegisteredServicePublicKeyEditBean (org.apereo.cas.mgmt.services.web.beans.RegisteredServicePublicKeyEditBean)1