This plugin allows the creation of Jira users based on LDAP.
| Name | Admin facilitation activities |
|---|---|
| Version | 3.8.1 |
| Product Versions | 0.9 |
| Author(s) | Tobias Anstett |
| Homepage | t11t |
| Price | FREE |
| License | BSD |
| JavaDocs | |
| IssueTracking | |
| Download JAR | (Java 1.4) afa14-0.9.jar |
| (java 1.5) afa15-0.9.jar | |
| Download Source | afa.zip |
| New Source Repository | http://svn.atlassian.com/svn/public/contrib/jira/afa/ |
Tested on Mac OS X with Firefox
Description/Features
Usefulness
Imagine that you are working in a global enterprise with over 250.000 or 500.000 Active Directory entries. You just did not want to add them all as users to Jira.
Typically you get a list of people, maybe as an issue, that should be added to Jira. These lists never contain all mandatory data or have incorrect spellings. So let me say that typing or searching each users 'username', 'full name' and 'email' could be a real pain.
Thats the background why i have developed this plugin called Admin facilitation activities.
You can search your LDAP directory for any combination of usernames, first names, last names or emails. The results are displayed as business cards. When you have found the correct card, simply click it to load its values. Modify these values if needed but your LDAP directory should hold the correct values.
Installation/Configuration
Requirements
- Jira running with LDAP
- Configured Admin facilitation activities plugin
Configuration
Build with .jar (very fast)
Open the downloaded jar file and EDIT the ldap.properties file (de.t11t.jira.plugins) analog to the osuser.xml located in WEB-INF/classes/ . You can do this with the help of winrar or just decompress it - modify it - and compress it again.
Build from source
- Download and install the latest DevelopmentKit (i used 3.8.1)
- Download and install Maven 1.x
- Download the zipped src file.
- Unzip it to the examples folder or an other folder at same level.
- EDIT the ldap.properties file (de.t11t.jira.plugins) analog to the osuser.xml located in WEB-INF/classes/ .
- MODIFY all things you like
- Run maven
- Build the plugin
Customisation
If you like to change the look & feel of the business cards to your corporate identity, you can substitute the picture located at /etc/includes/images/logo.gif to your enterprise logo. Colors could be modified in a custom style sheet located at /etc/includes/css/adminfaciliationactivities.css .
Usage
As you can see in the screenshot section, it is pretty self explanatory. I searched for a User with surname Müller.

Comments (19)
Sep 16, 2007
Trevor Marshall says:
Doesn't seem to be working with Jira 3.10.2.Doesn't seem to be working with Jira 3.10.2.
Dec 15, 2007
Vishwajeet Singh says:
For me it's working for 3.11 and even 3.12For me it's working for 3.11 and even 3.12
Feb 19, 2008
Karl Katzke says:
It's working fine in 3.12.1 for me just fine. I did find a bug in the javascript...It's working fine in 3.12.1 for me just fine. I did find a bug in the javascript where names with apostrophes don't get populated back to the form.
Jun 01, 2008
Neil Crow says:
Hi Tobias, I was trying to get the afa-plugin working for jira, and was battlin...Hi Tobias,
I was trying to get the afa-plugin working for jira, and was battling with the ldap connection.
After looking around a bit I found the LDAP Util library which was written for confluence developers to reuse the existing osuser.xml or atlassian-user.xml.
I thought that this sounded very worthwhile, as then I wouldn't have to duplicate my configuration.
So I have made some changes to your LdapProvider attached here LdapProvider.java.
This version of the class is greatly simplified, as it doesn't have to deal with the LDAP connection, only building up the query string.
The ldap.properties can be similarly simplified.
I also changed the velocity template to use the LDAPUser class provided by the LDAP Util library.
The only other problem that I encountered, was on the velocity template where the email address was null, because of how user objects have been created on my LDAP server,
This was causing a null pointer exception, so you'll notice an extra check inside the loop that renders the UserCards.
Changed success.vm
I hope you will incorporate my changes into your next version, although this does depend on my changes being accepted at the LDAP Util library project.
You should also consider hosting the project source code on atlassians svn server http://svn.atlassian.com/svn/public/contrib/jira/ .
Regards,
Neil Crow.
Sep 12
Neil Crow says:
Hi Tobias, Andy from the LDAP Util library project has accepted my change to re...Hi Tobias,
Andy from the LDAP Util library project has accepted my change to retun a list of users instead of a single user.
Regards,
Neil Crow.
Aug 20
Hugo Lassiège says:
The filter by default is restrictive and don't fit to all ldap structure : Stri...The filter by default is restrictive and don't fit to all ldap structure :
String filter = "(&(objectclass=person) ..."
The objectclass is not person for all structure, it could be a parameter in the file ldap.properties. I made a little patch for my usage as we use the objectclass account with openldap.
Sep 12
Neil Crow says:
Eliminating false negative searches. I found that when searching the LDAP, I wa...Eliminating false negative searches.
I found that when searching the LDAP, I was often failing to find users that actually existed on the LDAP.
The reason for this is that the query string produced looks as follows:
Often on our LDAP the userPrincipalName is not captured, but the sAMAccountname is always captured.
The query fails to resolve sAMAccountname=UID if that LDAP entry does not have a userPrincipleName attribute.
So I rewoked the routine that builds up the filter string to omit terms where the value is null or *, the resulting filter string looks as follows:
My latest changes have been attached here LdapProvider.java
Regards,
Neil Crow.
Sep 15
Michael Hoefer says:
Broken on 3.13: Caused by: java.lang.NoClassDefFoundError: com/atlassian/jira/u...Broken on 3.13:
Caused by: java.lang.NoClassDefFoundError: com/atlassian/jira/util/JiraUserUtils
at de.t11t.jira.plugins.ldap.AddUser.doCreate(AddUser.java:87)
... 69 more
Sep 26
Hugo Lassiège says:
yes, JiraUserUtils should be replaced in line 87 in the method doCreate : Use...yes, JiraUserUtils should be replaced in line 87 in the method doCreate :
Oct 10
Neil Crow says:
I noticed a bug when trying to create a user with an apostrophe in the surname: ...I noticed a bug when trying to create a user with an apostrophe in the surname:
e.g. John O'Dude
The user is found on the active directory, but the javascript gets all screwed up when you click on the business card that is returned.
Here is the url that is generated when I hover over the business card:
javascript:selectUsercard('id1',%20'John',%20'O'Dude',%20'O'Dude,%20John',%20'john@abc.xyz');
Here is the url that is generated when I hover over the business card for my own ID:
javascript:selectUsercard('id2',%20'Neil',%20'Crow',%20'Crow,%20Neil',%20'neil@abc.xyz');
I'm not going to have a go at fixing this right now, just putting it up here incase anyone else feels like it.
Oct 16
Mohammad Sayeed says:
Anyone got this working with Jira 3.13 yet?Anyone got this working with Jira 3.13 yet?
Nov 11
Ethan McDonald says:
I have the same question is this working 3.13 yet? The plug-in is installed but...I have the same question is this working 3.13 yet?
The plug-in is installed but throws errors when I try to create an account.
Oct 22
Tobias Anstett says:
Hi together, thanks for using this plugin. Neil finally managed to contact me ...Hi together,
thanks for using this plugin.
Neil finally managed to contact me and asked for reviving this plugin to integrate his and your fixes and improving it further.
I am currently very busy because we (K15t) are pushing the development of a confluence product called Scroll Wiki Exporter which is presented on the AUG`08 in Berlin (Germany) tomorrow. We have a really huge community out there - one of the best blogs about it was done by Sarah Maddox.
I am looking forward to meet the Atlassian guys like Jens Schumacher tomorrow and talk to him how we can manage to get an SVN if this plugin doesn't already have one
Furthermore I will stay in contact with Neil who seams to have more knowledge of LDAP and the JIRA 3.10+ than I currently have.
If Neil is really interested in further pushing the development of this plugin we definitively find a solution
I think I somehow can manage to spend some time for it.
Cheers, Tobias
Oct 31
Neil Crow says:
Hi Tobias, I hope your presentation went well. As I mentioned to you on email, ...Hi Tobias,
I hope your presentation went well.
As I mentioned to you on email, I would like to see the source for this plugin hosted on the Atlassian svn repo and also a jira project created for the plugin.
I would like my code to be used as the base for the svn commit, as I have made 3 significant changes:
So if its OK with you, then I'll put the request through to the Atlassian guys for creation of the project in svn and jira.
Futher than that, at this stage I dont know how they handle additional committers rights on plugin projects, I'm sure its possible I guess we'll just figure it out as we go along.
Cheers,
Neil.
Nov 13
Neil Crow says:
I have committed my changes in here http://svn.atlassian.com/svn/public/contrib/...I have committed my changes in here http://svn.atlassian.com/svn/public/contrib/jira/afa/
Nov 14
Tobias Anstett says:
Thanks Neil, do you know if your modifications require any specific versi...Thanks Neil,
do you know if your modifications require any specific version of jira? I will start to rebuild the plugin during my holidays
Nov 19
Neil Crow says:
Hi Tobias, I am running on jira-3.12 I have to deploy 2 jar files to the WEB-...Hi Tobias,
I am running on jira-3.12
I have to deploy 2 jar files to the WEB-INF/lib directory of the jira instance.
When the AFP jar version is incremented, the jar file with the old version number must be removed from WEB-INF/lib.
I build AFP using maven2, i.e. the pom.xml in the project root is used to do the build.
I left the project.xml file in there, from the original source.
My maven2 builds are performed against a local [Nexus|nexus.sonatype.org] repository manager, which I have configured to proxy and cache the atlassian repositories.
Please provide comments on the following thoughts:
- I checked the project into svn as "afa", this is not very descptive, I would like to rename it to something like "AdminLdapUtil".
- The project name should also appear in the package name, which is currently "de.t11t.jira.plugins.ldap", any recomendations?
- The package name should correspond to the maven groupId, currently "de.t11t.jira.plugins"
- I left the generated artifact as "AFP" which does not correspond with the "afa" project name, but seems to be derived from the original maven-name element "Admin faciliation plugin".
So I would like to introduce some consistency across these elements, I think "AdminLdapUtil" best descibes the plugins functionality. Would you be OK with the high-level package qualifier as "de.t11t.adminLdapUtil" or do you have any other suggestions?
Cheers,
Neil.
Nov 19
Andy Brook says:
gah! upper case package names..... </lip-curl>gah! upper case package names..... </lip-curl>
Nov 19
Neil Crow says:
True, will fix above ... and then go to bed immediately after :oTrue, will fix above ... and then go to bed immediately after :o