Repository: incubator-atlas Updated Branches: refs/heads/master 7e3830a73 -> 67a1133a3
ATLAS-869 Make LDAP/AD properties to be configurable. (nixonrodrigues via yhemanth) Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/67a1133a Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/67a1133a Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/67a1133a Branch: refs/heads/master Commit: 67a1133a3ba14b5a89d90c1447607d066ab6be30 Parents: 7e3830a Author: Hemanth Yamijala <[email protected]> Authored: Mon Jun 13 20:19:34 2016 +0530 Committer: Hemanth Yamijala <[email protected]> Committed: Mon Jun 13 20:19:34 2016 +0530 ---------------------------------------------------------------------- distro/src/conf/atlas-application.properties | 29 +++- release-log.txt | 1 + .../security/AtlasADAuthenticationProvider.java | 30 +++-- .../AtlasLdapAuthenticationProvider.java | 48 ++++--- webapp/src/main/resources/atlas-admin-site.xml | 133 ------------------- .../main/webapp/WEB-INF/applicationContext.xml | 12 -- 6 files changed, 73 insertions(+), 180 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/distro/src/conf/atlas-application.properties ---------------------------------------------------------------------- diff --git a/distro/src/conf/atlas-application.properties b/distro/src/conf/atlas-application.properties index 2b90086..5bd0f74 100755 --- a/distro/src/conf/atlas-application.properties +++ b/distro/src/conf/atlas-application.properties @@ -89,10 +89,37 @@ atlas.authentication.method.kerberos=false atlas.authentication.method.ldap=false atlas.authentication.method.file=true +#### ldap.type= LDAP or AD atlas.authentication.method.ldap.type=LDAP -atlas.authentication.method.ldap.url= + +#### user credentials file atlas.authentication.method.file.filename=${sys:atlas.home}/conf/users-credentials.properties + +######## LDAP properties ######### +#atlas.authentication.method.ldap.url=ldap://<ldap server url>:389 +#atlas.authentication.method.ldap.userDNpattern=uid={0}\,ou=People\,dc=example\,dc=com +#atlas.authentication.method.ldap.groupSearchBase=dc=example\,dc=com +#atlas.authentication.method.ldap.groupSearchFilter=(member=uid={0}\,ou=Users\,dc=example\,dc=com) +#atlas.authentication.method.ldap.groupRoleAttribute=cn +#atlas.authentication.method.ldap.base.dn=dc=example\,dc=com +#atlas.authentication.method.ldap.bind.dn=cn=Manager\,dc=example\,dc=com +#atlas.authentication.method.ldap.bind.password=<password> +#atlas.authentication.method.ldap.referral=ignore +#atlas.authentication.method.ldap.user.searchfilter=(uid={0}) +#atlas.authentication.method.ldap.default.role=<default role> + + +######### Active directory properties ####### +#atlas.authentication.method.ldap.ad.domain=example.com +#atlas.authentication.method.ldap.ad.url=ldap://<AD server url>:389 +#atlas.authentication.method.ldap.ad.base.dn=(sAMAccountName={0}) +#atlas.authentication.method.ldap.ad.bind.dn=CN=team\,CN=Users\,DC=example\,DC=com +#atlas.authentication.method.ldap.ad.bind.password=<password> +#atlas.authentication.method.ldap.ad.referral=ignore +#atlas.authentication.method.ldap.ad.user.searchfilter=(sAMAccountName={0}) +#atlas.authentication.method.ldap.ad.default.role=<default role> + ######### JAAS Configuration ######## #atlas.jaas.KafkaClient.loginModuleName = com.sun.security.auth.module.Krb5LoginModule http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index 2752fe4..56b3472 100644 --- a/release-log.txt +++ b/release-log.txt @@ -22,6 +22,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file (dosset ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags) ALL CHANGES: +ATLAS-869 Make LDAP/AD properties to be configurable. (nixonrodrigues via yhemanth) ATLAS-730 Change titan hbase table name (svimal2106 via sumasai ) ATLAS-871 Make audit repository implementation configurable (jnhagelb via shwethags) ATLAS-885 optimize HBaseStoreManager to avoid expensive HTable instantiation every 5 seconds (madhan.neethiraj via yhemanth) http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/webapp/src/main/java/org/apache/atlas/web/security/AtlasADAuthenticationProvider.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/atlas/web/security/AtlasADAuthenticationProvider.java b/webapp/src/main/java/org/apache/atlas/web/security/AtlasADAuthenticationProvider.java index 34063b0..cf83109 100644 --- a/webapp/src/main/java/org/apache/atlas/web/security/AtlasADAuthenticationProvider.java +++ b/webapp/src/main/java/org/apache/atlas/web/security/AtlasADAuthenticationProvider.java @@ -22,8 +22,9 @@ import java.util.List; import javax.annotation.PostConstruct; -import org.apache.atlas.utils.PropertiesUtil; +import org.apache.atlas.ApplicationProperties; import org.apache.atlas.web.model.User; +import org.apache.commons.configuration.Configuration; import org.apache.log4j.Logger; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -97,18 +98,21 @@ public class AtlasADAuthenticationProvider extends } private void setADProperties() { - adDomain = PropertiesUtil.getProperty("atlas.ad.domain", adDomain); - adURL = PropertiesUtil.getProperty("atlas.ad.url", adURL); - adBindDN = PropertiesUtil.getProperty("atlas.ad.bind.dn", adBindDN); - adBindPassword = PropertiesUtil.getProperty("atlas.ad.bind.password", - adBindPassword); - adUserSearchFilter = PropertiesUtil.getProperty( - "atlas.ad.user.searchfilter", adUserSearchFilter); - adBase = PropertiesUtil.getProperty("atlas.ad.base.dn", adBase); - adReferral = PropertiesUtil - .getProperty("atlas.ad.referral", adReferral); - adDefaultRole = PropertiesUtil.getProperty("atlas.ad.default.role", - adDefaultRole); + try { + + Configuration configuration = ApplicationProperties.get(); + this.adDomain = configuration.getString("atlas.authentication.method.ldap.ad.domain"); + this.adURL = configuration.getString("atlas.authentication.method.ldap.ad.url"); + this.adBindDN = configuration.getString("atlas.authentication.method.ldap.ad.bind.dn"); + this.adBindPassword = configuration.getString("atlas.authentication.method.ldap.ad.bind.password"); + this.adUserSearchFilter = configuration.getString("atlas.authentication.method.ldap.ad.user.searchfilter"); + this.adBase = configuration.getString("atlas.authentication.method.ldap.ad.base.dn"); + this.adReferral = configuration.getString("atlas.authentication.method.ldap.ad.referral"); + this.adDefaultRole = configuration.getString("atlas.authentication.method.ldap.ad.default.role"); + + } catch (Exception e) { + LOG.error("Exception while setADProperties", e); + } } } http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/webapp/src/main/java/org/apache/atlas/web/security/AtlasLdapAuthenticationProvider.java ---------------------------------------------------------------------- diff --git a/webapp/src/main/java/org/apache/atlas/web/security/AtlasLdapAuthenticationProvider.java b/webapp/src/main/java/org/apache/atlas/web/security/AtlasLdapAuthenticationProvider.java index 6037858..6d56453 100644 --- a/webapp/src/main/java/org/apache/atlas/web/security/AtlasLdapAuthenticationProvider.java +++ b/webapp/src/main/java/org/apache/atlas/web/security/AtlasLdapAuthenticationProvider.java @@ -20,8 +20,9 @@ package org.apache.atlas.web.security; import java.util.List; import javax.annotation.PostConstruct; -import org.apache.atlas.utils.PropertiesUtil; +import org.apache.atlas.ApplicationProperties; import org.apache.atlas.web.model.User; +import org.apache.commons.configuration.Configuration; import org.apache.log4j.Logger; import org.springframework.ldap.core.support.LdapContextSource; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -120,26 +121,31 @@ public class AtlasLdapAuthenticationProvider extends } private void setLdapProperties() { - ldapURL = PropertiesUtil.getProperty("atlas.ldap.url", ldapURL); - ldapUserDNPattern = PropertiesUtil.getProperty( - "atlas.ldap.user.dnpattern", ldapUserDNPattern); - ldapGroupSearchBase = PropertiesUtil.getProperty( - "atlas.ldap.group.searchbase", ldapGroupSearchBase); - ldapGroupSearchFilter = PropertiesUtil.getProperty( - "atlas.ldap.group.searchfilter", ldapGroupSearchFilter); - ldapGroupRoleAttribute = PropertiesUtil.getProperty( - "atlas.ldap.group.roleattribute", ldapGroupRoleAttribute); - ldapBindDN = PropertiesUtil.getProperty("atlas.ldap.bind.dn", - ldapBindDN); - ldapBindPassword = PropertiesUtil.getProperty( - "atlas.ldap.bind.password", ldapBindDN); - ldapDefaultRole = PropertiesUtil.getProperty("atlas.ldap.default.role", - ldapDefaultRole); - ldapUserSearchFilter = PropertiesUtil.getProperty( - "atlas.ldap.user.searchfilter", ldapUserSearchFilter); - ldapReferral = PropertiesUtil.getProperty("atlas.ldap.referral", - ldapReferral); - ldapBase = PropertiesUtil.getProperty("atlas.ldap.base.dn", ldapBase); + try { + Configuration configuration = ApplicationProperties.get(); + + ldapURL = configuration.getString("atlas.authentication.method.ldap.url"); + ldapUserDNPattern = configuration.getString( + "atlas.authentication.method.ldap.userDNpattern"); + ldapGroupSearchBase = configuration.getString( + "atlas.authentication.method.ldap.groupSearchBase"); + ldapGroupSearchFilter = configuration.getString( + "atlas.authentication.method.ldap.groupSearchFilter"); + ldapGroupRoleAttribute = configuration.getString( + "atlas.authentication.method.ldap.groupRoleAttribute"); + ldapBindDN = configuration.getString("atlas.authentication.method.ldap.bind.dn"); + ldapBindPassword = configuration.getString( + "atlas.authentication.method.ldap.bind.password"); + ldapDefaultRole = configuration.getString("atlas.authentication.method.ldap.default.role"); + ldapUserSearchFilter = configuration.getString( + "atlas.authentication.method.ldap.user.searchfilter"); + ldapReferral = configuration.getString("atlas.authentication.method.ldap.ad.referral"); + ldapBase = configuration.getString("atlas.authentication.method.ldap.base.dn"); + + } catch (Exception e) { + LOG.error("Exception while setLdapProperties", e); + } + } private LdapContextSource getLdapContextSource() throws Exception { http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/webapp/src/main/resources/atlas-admin-site.xml ---------------------------------------------------------------------- diff --git a/webapp/src/main/resources/atlas-admin-site.xml b/webapp/src/main/resources/atlas-admin-site.xml deleted file mode 100644 index c4b4be7..0000000 --- a/webapp/src/main/resources/atlas-admin-site.xml +++ /dev/null @@ -1,133 +0,0 @@ -<!-- Licensed 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. - See accompanying LICENSE file. --> - - -<configuration> - <!-- # Ldap info start --> - - <property> - <name>atlas.ldap.url</name> - <display-name>LDAP URL</display-name> - <value>ldap://172.22.98.129:389</value> - <description>LDAP Server URL, only used if - Authentication method - is LDAP - </description> - </property> - <property> - <name>atlas.ldap.user.dnpattern</name> - <value>uid={0},ou=People,dc=example,dc=com</value> - <description></description> - </property> - <property> - <name>atlas.ldap.group.searchbase</name> - <display-name>Group Search Base</display-name> - <value>dc=example,dc=com</value> - <description></description> - </property> - <property> - <name>atlas.ldap.group.searchfilter</name> - <display-name>Group Search Filter</display-name> - <value>(member=uid={0},ou=Users,dc=example,dc=com) - </value> - <description></description> - </property> - <property> - <name>atlas.ldap.group.roleattribute</name> - <value>cn</value> - <description></description> - </property> - - <property> - <name>atlas.ldap.base.dn</name> - <value>dc=example,dc=com</value> - <description>LDAP base dn or search base</description> - </property> - <property> - <name>atlas.ldap.bind.dn</name> - <display-name>Bind User</display-name> - <value>cn=Manager,dc=example,dc=com</value> - <description>LDAP bind dn or manager dn</description> - </property> - <property> - <name>atlas.ldap.bind.password</name> - <display-name>âBind User Password</display-name> - <value>p@ssword</value> - <property-type>PASSWORD</property-type> - <description>Password for the account that can search - for users - </description> - <value-attributes> - <type>password</type> - <overridable>false</overridable> - </value-attributes> - </property> - <property> - <name>atlas.ldap.user.searchfilter</name> - <display-name>User Search Filter</display-name> - <value>(uid={0})</value> - <description></description> - </property> - - <property> - <name>atlas.ldap.default.role</name> - <value>ROLE_USER</value> - </property> - <property> - <name>atlas.ldap.referral</name> - <value>ignore</value> - <description>follow or ignore</description> - </property> - - - <!-- # Ldap Info end --> - - <!-- #AD info start --> - <property> - <name>atlas.ad.url</name> - <value>ldap://13.76.128.185:389</value> - <description></description> - </property> - <property> - <name>atlas.ad.domain</name> - <value>example.com</value> - <description>Ad Domain</description> - </property> - <property> - <name>atlas.ad.bind.dn</name> - <value>CN=adadmin admin,CN=Users,DC=example,DC=com</value> - <description>AD bind dn or manager dn</description> - </property> - <property> - <name>atlas.ad.bind.password</name> - <value>p@ssword</value> - <description>AD bind password</description> - </property> - <property> - <name>atlas.ad.user.searchfilter</name> - <display-name>User Search Filter</display-name> - <value>(sAMAccountName={0})</value> - <description></description> - </property> - <property> - <name>atlas.ad.base.dn</name> - <value>dc=example,dc=com</value> - <description>AD base dn or search base</description> - </property> - <property> - <name>atlas.ad.referral</name> - <value>ignore</value> - <description>follow or ignore</description> - </property> - <property> - <name>atlas.ad.default.role</name> - <value>ROLE_USER</value> - </property> - <!-- AD info end --> -</configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/67a1133a/webapp/src/main/webapp/WEB-INF/applicationContext.xml ---------------------------------------------------------------------- diff --git a/webapp/src/main/webapp/WEB-INF/applicationContext.xml b/webapp/src/main/webapp/WEB-INF/applicationContext.xml index 004c3a8..6129605 100644 --- a/webapp/src/main/webapp/WEB-INF/applicationContext.xml +++ b/webapp/src/main/webapp/WEB-INF/applicationContext.xml @@ -22,18 +22,6 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> - <import resource="classpath:/spring-security.xml" /> - <bean id="xmlPropertyConfigurer" class="org.apache.atlas.utils.XMLPropertiesUtil" /> - - <bean id="propertyConfigurer" class="org.apache.atlas.utils.PropertiesUtil"> - <property name="locations"> - <list> - <value>classpath:atlas-admin-site.xml - </value> - </list> - </property> - <property name="propertiesPersister" ref="xmlPropertyConfigurer" /> - </bean> </beans> \ No newline at end of file
