This is an automated email from the ASF dual-hosted git repository. mmoayyed pushed a commit to branch SYNCOPE-163-1 in repository https://gitbox.apache.org/repos/asf/syncope.git
commit dd74a8075306b3adb51a8de9ff815f67e10a0a77 Merge: 5b3cd4f 7691e4c Author: Misagh Moayyed <[email protected]> AuthorDate: Wed Mar 25 18:49:19 2020 +0430 merge with master .../module => auth}/AbstractAuthModuleConf.java | 8 +- .../module => auth}/AuthModuleConf.java | 6 +- .../module => auth}/GoogleMfaAuthModuleConf.java | 2 +- .../module => auth}/JaasAuthModuleConf.java | 2 +- .../module => auth}/LDAPAuthModuleConf.java | 2 +- .../module => auth}/OIDCAuthModuleConf.java | 2 +- .../module => auth}/SAML2IdPAuthModuleConf.java | 2 +- .../module => auth}/StaticAuthModuleConf.java | 2 +- .../package-info.java} | 21 +- .../AbstractAccessPolicyConf.java | 2 +- .../AbstractAttrReleasePolicyConf.java | 2 +- .../policy/AbstractAuthPolicyConf.java | 2 +- .../policy/AbstractAuthPolicyCriteriaConf.java | 2 +- .../lib/{access => policy}/AccessPolicyConf.java | 2 +- .../AllowedAttrReleasePolicyConf.java | 2 +- .../{attrs => policy}/AttrReleasePolicyConf.java | 2 +- .../policy/AuthPolicyConf.java | 2 +- .../policy/AuthPolicyCriteriaConf.java | 2 +- .../DefaultAccessPolicyConf.java | 2 +- .../policy/DefaultAuthPolicyConf.java | 3 +- .../policy/DefaultAuthPolicyCriteriaConf.java | 2 +- .../package-info.java} | 21 +- .../syncope/common/lib/to/client/ClientAppTO.java | 4 +- .../{OIDCRelyingPartyTO.java => OIDCRPTO.java} | 8 +- ...{SAML2ServiceProviderTO.java => SAML2SPTO.java} | 16 +- .../syncope/common/lib/types/AMEntitlement.java | 28 +-- .../common/lib/types/AMImplementationType.java | 9 +- .../ClientAppType.java} | 9 +- ...rviceProviderNameId.java => SAML2SPNameId.java} | 5 +- .../common/rest/api/service/ClientAppService.java | 65 ++--- .../org/apache/syncope/common/lib/to/AnyTO.java | 3 - .../common/lib/types/IdRepoImplementationType.java | 2 +- .../syncope/common/lib/types/PolicyType.java | 2 +- .../apache/syncope/core/logic/ClientAppLogic.java | 204 ++++++++++++++++ .../init/ClassPathScanImplementationLookup.java | 6 +- .../core/logic/oidc/OIDCRelyingPartyLogic.java | 101 -------- .../core/logic/saml/SAML2ServiceProviderLogic.java | 98 -------- .../rest/cxf/service/ClientAppServiceImpl.java | 68 ++---- .../org/apache/syncope/core/logic/PolicyLogic.java | 3 + .../syncope/core/logic/cocoon/FopSerializer.java | 26 +- .../syncope/core/logic/cocoon/TextSerializer.java | 2 +- .../syncope/core/logic/cocoon/XSLTTransformer.java | 26 +- .../{authentication => auth}/AuthModuleDAO.java | 4 +- .../OIDCRPDAO.java} | 19 +- .../SAML2SPDAO.java} | 19 +- .../{authentication => auth}/AuthModule.java | 2 +- .../entity/{authentication => auth}/ClientApp.java | 2 +- .../api/entity/auth/ClientAppUtils.java | 12 +- .../ClientAppUtilsFactory.java} | 17 +- .../OIDCRelyingParty.java => auth/OIDCRP.java} | 8 +- .../SAML2SP.java} | 14 +- .../src/test/resources/domains/MasterContent.xml | 24 +- .../core/persistence/jpa/dao/AbstractDAO.java | 5 +- .../core/persistence/jpa/dao/JPAPolicyDAO.java | 9 +- .../{authentication => auth}/JPAAuthModuleDAO.java | 8 +- .../JPAOIDCRPDAO.java} | 61 +++-- .../persistence/jpa/dao/auth/JPASAML2SPDAO.java | 108 +++++++++ .../jpa/dao/authentication/JPASAML2SPDAO.java | 110 --------- .../persistence/jpa/entity/JPAEntityFactory.java | 22 +- .../core/persistence/jpa/entity/JPARealm.java | 42 ++-- .../AbstractClientApp.java | 4 +- .../{authentication => auth}/JPAAuthModule.java | 4 +- .../jpa/entity/auth/JPAClientAppUtils.java | 51 ++++ .../jpa/entity/auth/JPAClientAppUtilsFactory.java | 72 ++++++ .../JPAOIDCRP.java} | 21 +- .../JPASAML2SP.java} | 18 +- .../jpa/entity/policy/JPAPolicyUtils.java | 5 +- .../jpa/entity/policy/JPAPolicyUtilsFactory.java | 4 +- .../jpa/inner/AbstractClientAppTest.java | 6 +- .../core/persistence/jpa/inner/AuthModuleTest.java | 37 ++- .../{OIDCRelyingPartyTest.java => OIDCRPTest.java} | 34 ++- .../core/persistence/jpa/inner/PolicyTest.java | 8 +- ...L2ServiceProviderTest.java => SAML2SPTest.java} | 38 ++- .../core/persistence/jpa/outer/PolicyTest.java | 11 +- .../src/test/resources/domains/MasterContent.xml | 26 +- ...rtyDataBinder.java => ClientAppDataBinder.java} | 12 +- .../api/data/SAML2ServiceProviderDataBinder.java | 31 --- .../java/data/ClientAppDataBinderImpl.java | 264 +++++++++++++++++++++ .../java/data/ImplementationDataBinderImpl.java | 10 +- .../java/data/OIDCRelyingPartyDataBinderImpl.java | 141 ----------- .../data/SAML2ServiceProviderDataBinderImpl.java | 150 ------------ .../org/apache/syncope/fit/AbstractITCase.java | 24 -- .../apache/syncope/fit/core/ClientAppITCase.java | 229 ++++++++++++++++++ .../syncope/fit/core/OIDCRelyingPartyITCase.java | 124 ---------- .../org/apache/syncope/fit/core/PolicyITCase.java | 24 +- .../org/apache/syncope/fit/core/RealmITCase.java | 10 +- .../fit/core/SAML2ServiceProviderITCase.java | 125 ---------- fit/wa-reference/src/main/resources/wa.properties | 8 + pom.xml | 11 +- wa/bootstrap/pom.xml | 2 + .../java/org/apache/syncope/wa/WARestClient.java | 16 +- .../bootstrap/SyncopeWABootstrapConfiguration.java | 4 +- .../bootstrap/SyncopeWAPropertySourceLocator.java | 44 +--- .../syncope/wa/starter/SyncopeWAConfiguration.java | 14 +- .../wa/starter/rest/SyncopeServiceRegistry.java | 18 +- wa/starter/src/main/resources/wa.properties | 2 - 96 files changed, 1401 insertions(+), 1465 deletions(-) diff --cc wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWABootstrapConfiguration.java index c583f79,fb7732b..e9fdfa9 --- a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWABootstrapConfiguration.java +++ b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWABootstrapConfiguration.java @@@ -22,8 -24,8 +22,6 @@@ import org.apache.syncope.common.keymas import org.apache.syncope.common.keymaster.client.self.SelfKeymasterClientContext; import org.apache.syncope.common.keymaster.client.zookeper.ZookeeperKeymasterClientContext; import org.apache.syncope.wa.WARestClient; --import org.slf4j.Logger; --import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; @@@ -31,13 -33,15 +29,13 @@@ import org.springframework.cloud.bootst import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.MapPropertySource; @Configuration(proxyBeanMethods = false) -@ImportAutoConfiguration(classes = { ZookeeperKeymasterClientContext.class, SelfKeymasterClientContext.class }) +@ImportAutoConfiguration(classes = {ZookeeperKeymasterClientContext.class, SelfKeymasterClientContext.class}) @PropertySource("classpath:wa.properties") @PropertySource(value = "file:${conf.directory}/wa.properties", ignoreResourceNotFound = true) -public class RestfulCloudConfigBootstrapConfiguration { +public class SyncopeWABootstrapConfiguration { - private static final Logger LOG = LoggerFactory.getLogger(SyncopeWABootstrapConfiguration.class); + - private static final Logger LOG = LoggerFactory.getLogger(RestfulCloudConfigBootstrapConfiguration.class); @Value("${anonymousUser}") private String anonymousUser; diff --cc wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWAPropertySourceLocator.java index 78f7633,0000000..c60284e mode 100644,000000..100644 --- a/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWAPropertySourceLocator.java +++ b/wa/bootstrap/src/main/java/org/apache/syncope/wa/bootstrap/SyncopeWAPropertySourceLocator.java @@@ -1,89 -1,0 +1,51 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.syncope.wa.bootstrap; + - import org.apereo.cas.configuration.CasConfigurationProperties; - import org.apereo.cas.configuration.CasCoreConfigurationUtils; - - import org.apache.syncope.common.lib.authentication.module.StaticAuthModuleConf; - import org.apache.syncope.common.lib.authentication.policy.AuthPolicyConf; - import org.apache.syncope.common.lib.policy.PolicyTO; - import org.apache.syncope.common.lib.to.AuthPolicyTO; - import org.apache.syncope.common.lib.to.ImplementationTO; - import org.apache.syncope.common.lib.types.AMImplementationType; - import org.apache.syncope.common.lib.types.PolicyType; - import org.apache.syncope.common.rest.api.service.ImplementationService; - import org.apache.syncope.common.rest.api.service.PolicyService; - import org.apache.syncope.core.provisioning.api.serialization.POJOHelper; +import org.apache.syncope.wa.WARestClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.bootstrap.config.PropertySourceLocator; +import org.springframework.core.annotation.Order; +import org.springframework.core.env.Environment; +import org.springframework.core.env.MapPropertySource; +import org.springframework.core.env.PropertySource; + - import java.util.List; - import java.util.Map; ++import java.util.HashMap; + +@Order +public class SyncopeWAPropertySourceLocator implements PropertySourceLocator { + private static final Logger LOG = LoggerFactory.getLogger(SyncopeWABootstrapConfiguration.class); + - private final PolicyService policyService; - - private final ImplementationService implementationService; + + public SyncopeWAPropertySourceLocator(final WARestClient waRestClient) { - this.policyService = waRestClient.getSyncopeClient().getService(PolicyService.class); - this.implementationService = waRestClient.getSyncopeClient().getService(ImplementationService.class); ++ + } + + @Override + public PropertySource<?> locate(final Environment environment) { + try { + LOG.info("Bootstrapping WA configuration"); - List<PolicyTO> policies = policyService.list(PolicyType.AUTHENTICATION); - CasConfigurationProperties cas = new CasConfigurationProperties(); - policies. - stream(). - map(AuthPolicyTO.class::cast). - forEach(policy -> translatePolicy(policy, cas)); - Map<String, Object> payload = CasCoreConfigurationUtils.asMap(cas.withHolder()); - return new MapPropertySource(getClass().getName(), payload); ++ return new MapPropertySource(getClass().getName(), new HashMap<>()); + } catch (Exception e) { + throw new IllegalArgumentException("Unable to fetch settings", e); + } + } - - private void translatePolicy(final AuthPolicyTO policy, final CasConfigurationProperties cas) { - ImplementationTO implTO = implementationService. - read(AMImplementationType.AUTH_POLICY_CONFIGURATIONS, policy.getKey()); - AuthPolicyConf policyConf = POJOHelper.deserialize(implTO.getBody(), AuthPolicyConf.class); - if (policyConf instanceof StaticAuthModuleConf) { - StaticAuthModuleConf staticConf = (StaticAuthModuleConf) policyConf; - StringBuilder users = new StringBuilder(); - staticConf.getUsers().forEach((key, value) -> users.append(key).append("::").append(value)); - cas.getAuthn().getAccept().setName(policyConf.getName()); - cas.getAuthn().getAccept().setUsers(users.toString()); - } - } +}
