[MGNLLDAP-76] LDAP/ADUserManager is not thread safe and can cause inconsistency in resolved user object Created: 18/Feb/13 Updated: 18/Jun/14 Resolved: 01/Mar/13 |
|
| Status: | Closed |
| Project: | LDAP Connector |
| Component/s: | None |
| Affects Version/s: | 1.5 |
| Fix Version/s: | 1.6 |
| Type: | Task | Priority: | Critical |
| Reporter: | Milan Divilek | Assignee: | Milan Divilek |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Template: |
|
||||||||||||||||||||
| Acceptance criteria: |
Empty
|
||||||||||||||||||||
| Task DoR: |
Empty
|
||||||||||||||||||||
| Release notes required: |
Yes
|
||||||||||||||||||||
| Date of First Response: | |||||||||||||||||||||
| Description |
|
LDAP/ADUserManager is instantiated only once. So calling methods from the manager can lead to concurrent modification of global variables. We need remove global variable to avoid the issue. Unfortunately this is not possible without changing public API. Apart from removing usage of class level variables, NameResolver.init() method needs to be modified. It has currently connection properties parameter and attributeMap parameter. AttributeMap contains all connection properties, so we don't need pass connection properties around. |
| Comments |
| Comment by Magnolia International [ 26/Feb/13 ] |
|
Some comments:
I think that's about it for now. Let me know if you need clarification or help with any of the above. |
| Comment by Magnolia International [ 01/Mar/13 ] |
|
Good job, thanks. I did a few more changes, please have a look at them. You then have my blessing to close this issue |
| Comment by Magnolia International [ 01/Mar/13 ] |
|
Mention in release notes - new "major" version due to some necessary API changes. (Re-enabling stuff that was accidentally broken in 1.5) |