In the attached code, you invalidate the cache *after* the super.bind()
call. That won't work. Invalidate the cache before.

Le 08/12/2017 à 19:32, Isenhour, Justin a écrit :
> Emmanuel,
> 
> I tried this but it doesn't seem to work.  I added the code you recommended, 
> when I login the first time I see the log statements showing the attempt to 
> invalidate the cache but when I try to login a second time my custom 
> authenticator is never invoked.  I also tried adding the modify event in an 
> attempt to invalidate the cache when the account is modified, I again see the 
> log entries showing the attempt to invalidate the cache but again when I try 
> to login I do not see my code getting called at all.  Any other suggestions.  
> Log entries below, updated code attached.
> 
> First Login
> 
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Intercepting bind operation
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Executing parent level bind events first
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Executing custom bind events
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Attempting to validate status attribute for uId 
> justin.isenh...@compass-usa.com
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Status for justin.isenh...@compass-usa.com is active
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Attempting to validate pwdReset attribute for uId 
> justin.isenh...@compass-usa.com
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> pwdReset for justin.isenh...@compass-usa.com is FALSE
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Attempting to invalidate the cache for 
> uid=justin.isenh...@compass-usa.com,ou=CommittedMembers,ou=people,dc=test,dc=com
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Attempting to set lastLogon attribute for uId justin.isenh...@compass-usa.com
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> lastLogon should be set now
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:05] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Done with custom bind action, calling next operation
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Intercepting bind operation
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Executing parent level bind events first
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Executing custom bind events
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] INFO 
> [com.cga.aaims.ldap.apacheds.interceptor.AAIMSAuthenticationInterceptor] - 
> Done with custom bind action, calling next operation
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] WARN 
> [org.apache.directory.server.core.api.interceptor.context.FilteringOperationContext]
>  - Requested attribute pwdLastSet does not exist in the schema, it will be 
> ignored
> INFO   | jvm 1    | 2017/12/08 13:18:06 | [13:18:06] WARN 
> [org.apache.directory.server.core.api.interceptor.context.FilteringOperationContext]
>  - Requested attribute pwdLastSet does not exist in the schema, it will be 
> ignored
> 
> 
> Second Login
> 
> INFO   | jvm 1    | 2017/12/08 13:19:00 | [13:19:00] WARN 
> [org.apache.directory.server.core.api.interceptor.context.FilteringOperationContext]
>  - Requested attribute pwdLastSet does not exist in the schema, it will be 
> ignored
> INFO   | jvm 1    | 2017/12/08 13:19:00 | [13:19:00] WARN 
> [org.apache.directory.server.core.api.interceptor.context.FilteringOperationContext]
>  - Requested attribute pwdLastSet does not exist in the schema, it will be 
> ignored
> 
> 
> Thanks,
> Justin Isenhour | Lead Developer, Systems and Technology Group | Compass 
> Group USA |  2400 Yorkmont Road | Charlotte, NC 28217 | 704.328.5804 | 
> justin.isenh...@compass-usa.com
> 
> 
> 
> 
> -----Original Message-----
> From: Emmanuel Lécharny [mailto:elecha...@gmail.com] 
> Sent: Thursday, December 7, 2017 5:35 PM
> To: users@directory.apache.org
> Subject: Re: [Ext] Re: [ApacheDS] How to clear cached authentication on 
> change of custom attribute
> 
> 
> 
> Le 07/12/2017 à 22:34, Isenhour, Justin a écrit :
>> A couple of things I have noticed.  I am not able to access the 
>> authenticator, my custom interceptor extends AuthenticationInterceptor which 
>> has a collection of authenticators but that collection is private.  The 
>> other thing I have noticed is that if the user account in question is 
>> already cached then my custom bind event is never called, so changes made 
>> here would have no impact.  Thoughts?
> 
> Ah, right, my proposal was not crrect because you would have to have access 
> to an authenticator beforehand.
> 
> But you can somehow fetch one using the getAuthenticators() method, which is 
> public in the AuthenticationInterceptor parent class, iterate on each 
> authenticator and call the invalidateCache() method on each one.
> That should work (yeah, I know, kind of a hack...)
> 
> 
> --
> Emmanuel Lecharny
> 
> Symas.com
> directory.apache.org
> 

-- 
Emmanuel Lecharny

Symas.com
directory.apache.org

Reply via email to