For a specific requirement - a request must be approved by the requester's manager - I need to retrieve a field from Active Directory. The name of the field is easy enough, it's "manager". But I cannot find anywhere how to do a query to actually fetch that particular field for a given user.
Is this possible in the first place? The JavaDocs are a dead end, and searching with Google loads to nothing as well. Writing a custom field is not a problem, nor is accessing classes such as ComponentAccessor, UserManager or Directory. But for the actually query, I'm lost.
It is possible to write a LDAP query against Active Directory - I am doing this to retrieve a subset of available groups such that only those are available to Confluece/JIRA.
I suggest looking at this page from Microsoft: http://msdn.microsoft.com/en-us/library/windows/desktop/aa746475%28v=vs.85%29.aspx
However, I'm not sure if it is possible to do this outside of the User Directories administration area.
OK, thanks, but how exactly are you performing the query? My question was perhaps a bit unclear: what I'm trying to get is some sort of handle to a directory that I can query directly.
What I've found so far is that you can get the attributes of the Directory object for a user, which contains the LDAP/AD connection specifics, and I could use those in a JNDI query. But that seems like a somewhat inelegant solution.
Basically, to find a way to get the LDAP connection object that JIRA itself is using.
I've solved it (of sorts) by getting the connection properties from the user's directory object and creating a JNDI "Context" object. Obviously, this implies a new LDAP connection every time the field is displayed, but to be honest I wouldn't know a more elegant solution.
Atlassian Summit is an excellent opportunity for in-person support, training, and networking.Learn more
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG