From c946b0be9e72f4eb524550bd889e6d44a4db8cb8 Mon Sep 17 00:00:00 2001 From: gsingers Date: Fri, 14 Feb 2014 10:57:22 -0500 Subject: [PATCH] create LDAP filters --- README.md | 15 +++++----- docs/ldap-settings.png | Bin 0 -> 97426 bytes src/main/python/python.py | 60 ++++++++++++++++++++++++++++++-------- 3 files changed, 56 insertions(+), 19 deletions(-) create mode 100644 docs/ldap-settings.png diff --git a/README.md b/README.md index 3b49a452..cc4b5d26 100644 --- a/README.md +++ b/README.md @@ -43,17 +43,18 @@ To get started, do the following: 2. Unzip OpenDS and follow the Installation instructions. As part of setup, I had the installer automatically populate the server with 50 users. Alternatively, you can add your own users. 3. Setup LWS with LDAP, per http://docs.lucidworks.com/display/lweug/LDAP+Integration. I've checked in a sample ldap.yml (named ldap-sample.yml) in the docs directory based off of my local OpenDS setup. > NOTE: MAKE SURE YOU HAVE AN ADMIN USER SETUP PER THE INSTRUCTIONS BEFORE TURNING ON LDAP IN LWS OTHERWISE YOU WILL NOT BE ABLE TO LOG IN TO THE ADMIN. -4. Create a Search Filter: - 1. Log in to the LWS UI - 2. Select the Finance Collection - 3. Select the "Access Control" option and add a Filter. For example: - > 1. Name: user10 - > 1. Users: user.10 //If using auto generated data from OpenDS - > 1. Search Filters: symbol:AES //user.10 may only see info about AES + > My settings are: + > 5. When starting the python application (python python.py from above) you need to pass in your LDAP URI, etc.: > 1. python python.py --ldap ldap://localhost:1389 > 1. You may optionally pass in the LDAP root user/password too (the defaults are: cn=Directory Manager,cn=Root DNs,cn=config and 'abc': > 1. python python.py --ldap ldap://localhost:1389 --ldap_user cn=Directory Manager,cn=Root DNs,cn=config --ldap_pass foo + > 1. If you have not setup any search filters for any of the users, passing in the --create_filters parameter using the following format: + > * --create_filters "rolename=uids=query;uids=query;...uids=query", as in: + > * --create_filters "AES=user.10=symbol:AES;bar=user.15=text:bar" + > 1. If you wish to create group filters, you will have to do this in the admin + + # Search Time diff --git a/docs/ldap-settings.png b/docs/ldap-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..90943cdab6dbbb485df5fbf61e8a8489779a43a8 GIT binary patch literal 97426 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 )158H5x#QQA-jpK?g)FL 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 literal 0 HcmV?d00001 diff --git a/src/main/python/python.py b/src/main/python/python.py index a525f254..0c036142 100644 --- a/src/main/python/python.py +++ b/src/main/python/python.py @@ -280,6 +280,33 @@ def load_users(baseDN="ou=People,dc=grantingersoll,dc=com"): traceback.print_tb(exc_traceback) +def create_filters(filters, users): + #roles = lweutils.json_http(lweutils.COL_URL + "/roles", method="GET") + #for role in roles: + # print role + + #{u'groups': [], u'users': [u'admin'], u'filters': [u'*:*'], u'name': u'DEFAULT'} + #{u'groups': [], u'users': [u'user.10'], u'filters': [u'symbol:AES'], u'name': u'user10'} + filters_split = filters.split(";") + for the_filter in filters_split: + print "Applying filter: " + the_filter + splits = the_filter.split("=") + #curl -H 'Content-type: application/json' + # -d '{"name": "ONLY_PUBLIC","groups": ["group1","group2"],"filters": ["status:public"], + # "users": ["user1"]}' http://localhost:8888/api/collections/collection1/roles + # rolename=uids=query;uids=query + the_users = [] + uids = splits[1].split(",") + for uid in uids: + the_users.append(uid) + data = {"name": splits[0], "users": the_users, "filters": splits[2]} + print "Sending Data to:" + lweutils.COL_URL + "/roles" + print data + result = lweutils.json_http(lweutils.COL_URL + "/roles", method="POST", data=data) + print "Result:" + print result + + if __name__ == '__main__': p = optparse.OptionParser() p.add_option("--api_host", action="store", dest="host", default="localhost") @@ -289,6 +316,7 @@ def load_users(baseDN="ou=People,dc=grantingersoll,dc=com"): p.add_option("--ldap", action="store", dest="ldap")#Most people are on 389 p.add_option("--ldapuser", action="store", dest="ldap_user", default="cn=Directory Manager,cn=Root DNs,cn=config") p.add_option("--ldappass", action="store", dest="ldap_pass", default="abc") + p.add_option("--create_filters", action="store", dest="create_filters") p.add_option("--baseDN", action="store", dest="base_dn", default="ou=People,dc=grantingersoll,dc=com") p.add_option("--ui_port", action="store", dest="ui_port", default="8989") opts, args = p.parse_args() @@ -296,10 +324,26 @@ def load_users(baseDN="ou=People,dc=grantingersoll,dc=com"): if COLLECTION is None: COLLECTION = "Finance" + LWS_URL = "http://" + opts.host + ":" + opts.api_port API_URL = LWS_URL + "/api" SOLR_URL = LWS_URL + "/solr/" + COLLECTION COL_URL = API_URL + "/collections/" + COLLECTION + lweutils.COLLECTION = COLLECTION + lweutils.LWS_URL = LWS_URL + lweutils.API_URL = API_URL + lweutils.SOLR_URL = SOLR_URL + lweutils.COL_URL = COL_URL + fields.FIELDS_URL = lweutils.COL_URL + '/fields' #TODO: fix this + ds.DS_URL = lweutils.COL_URL + '/datasources' + print "Coll: " + COLLECTION + print " lweutils: " + lweutils.COLLECTION + if (opts.ui_host and opts.ui_port): + lweutils.UI_URL = "http://" + opts.ui_host + ":" + opts.ui_port + else: + lweutils.UI_URL = "http://" + opts.host + ":8989" + lweutils.UI_API_URL = lweutils.UI_URL + "/api" + users = {} if opts.ldap: try: @@ -307,25 +351,17 @@ def load_users(baseDN="ou=People,dc=grantingersoll,dc=com"): the_ldap = ldap.initialize(opts.ldap) #the_ldap.simple_bind(opts.ldap_user, opts.ldap_pass) users = load_users(opts.base_dn) + if opts.create_filters: + create_filters(opts.create_filters, users) + exit() + except ldap.LDAPError, e: print e exc_type, exc_value, exc_traceback = sys.exc_info() print "*** init error:" traceback.print_tb(exc_traceback) - lweutils.COLLECTION = opts.collection - lweutils.LWS_URL = LWS_URL - lweutils.API_URL = API_URL - lweutils.SOLR_URL = SOLR_URL - lweutils.COL_URL = COL_URL - fields.FIELDS_URL = lweutils.COL_URL + '/fields' #TODO: fix this - ds.DS_URL = lweutils.COL_URL + '/datasources' - if (opts.ui_host and opts.ui_port): - lweutils.UI_URL = "http://" + opts.ui_host + ":" + opts.ui_port - else: - lweutils.UI_URL = "http://" + opts.host + ":8989" - lweutils.UI_API_URL = lweutils.UI_URL + "/api" solr = pysolr.Solr(SOLR_URL, timeout=10) app.debug = True