On Nov 7, 2024, at 3:32 AM, Kostas Kalevras <kka...@gmail.com> wrote:
Hello team I am trying to understand how LDAP failover works and where I am in error in my configuration. I am using CAS 6.6.15. I have a test Docker compose setup with a CAS and two LDAP servers (one "primary" and the other "secondary") Relevant config: cas.authn.ldap[0].ldap-url=ldap://ldap1:389 ldap://ldap2:389 cas.authn.ldap[0].connection-strategy=ACTIVE_PASSIVE My process is as follows: 1. Start the docker compose stack 2. Perform an auth on CAS. I observe traffic on ldap1 3. Inside the CAS container run route add -host <ldap1 ip> reject 4. A telnet to ldap1 389 now returns an error as expected 5. Perform an auth on CAS. After a few seconds I get authenticated and observe traffic on ldap2 6. Perform an auth on CAS again. This time everything happens very fast with no problems. So far so good! 7. Now for the main issue: Delete the route with route del -host <ldap1 ip> reject 8. Now I can telnet to ldap1 389 9. Yet no matter what I do, how much I wait, CAS will keep on using only ldap2 10. I tried setting up the cas.monitor.ldap settings, explicitly setting the cas.authn.ldap[0].connect-timeout=PT5S to no avail I seem to be stuck with failover working well when the primary LDAP server goes offline but not when it comes back online. Am I missing something here? The behavior you’re seeing is consistent with how this functionality works. The code attempts to keep working connections available and ensures the minimum pool size is correct. When ldap1 is available you should expect *new* connections to be created using that directory. The connection to ldap2 may be removed from the pool when it has been idle too long and the number of connections in the pool exceed the minimum. Of course if ldap2 becomes unavailable, it will be removed from the pool. tl;dr the connection to ldap2 will naturally cycle out of the pool over time as the pool grows and shrinks based on load. There is a new feature in development that will allow you to configure a max connection age, I expect that to be available in a future CAS release. —Daniel Fisher -- - Website: https://apereo.github.io/cas - List Guidelines: https://goo.gl/1VRrw7 - Contributions: https://goo.gl/mh7qDG --- You received this message because you are subscribed to the Google Groups "CAS Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to cas-user+unsubscr...@apereo.org. To view this discussion visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/D07463B9-4556-4DB0-ABFB-9E297CF2CFBE%40vt.edu.