We want to configure password max age for 90 days. We set ads-pwdmaxage to value 7776000. From this moment all user passwords are always expired. We found the root cause:
There is a bug in source code. package org.apache.directory.server.core.authn.PasswordUtil class. Method
public static boolean isPwdExpired( String pwdChangedZtime, int pwdMaxAgeSec ).
You multiply -> long time = pwdMaxAgeSec * 1000;
pwdMaxAgeSec is int and when it is 7776000 multiplied by 1000 will get out of int range.
Please convert pwdMaxAgeSec to long before multiplying it by 1000 and assigning the result into long time.