我们正在使用Active Directory来管理用户帐户。现在我们要使用密码策略设置最大密码使用期限,以便在2个月后强制用户重置密码。如果用户的密码即将过期(例如3天),我们需要在用户登录后发出警告。 我们怎样才能获得这个?我们正在使用Spring LDAP 1.3.0。 我用Google搜索并查看密码max age属性是否在域中设置。但是,我不知道如何获得这个价值。
由于 COL
答案 0 :(得分:-1)
您需要使用扩展密码请求和响应控件来获取此信息。请参阅我对this question的回答,获取必要Java代码的链接。
答案 1 :(得分:-3)
凭据到期日期和时间
获取上次更改密码的日期和时间:
private final static long DIFF_NET_JAVA_FOR_DATE_AND_TIMES = 11644473600000L;
long adDateTime = Long.parseLong(pwdLastSet);
long milliseconds = (adDateTime / 10000) - DIFF_NET_JAVA_FOR_DATE_AND_TIMES;
Date pwdLastSetDate = new Date(milliseconds);
获取可能拥有密码的最大天数:
private final static int ONE_HUNDRED_NANOSECOND = 10000000;
private final static long SECONDS_IN_DAY = 86400;
long maxPwdAge = Math.abs(Long.parseLong(maxPwdAgeStr));
long maxPwdAgeSecs = maxPwdAge / ONE_HUNDRED_NANOSECOND;
int maxPwdAgeDays = (int) (maxPwdAgeSecs / SECONDS_IN_DAY);
获取密码过期的日期和时间
Calendar cal = Calendar.getInstance();
cal.setTime(pwdLastSetDate);
cal.add(Calendar.DATE, maxPwdAgeDays);
Date credentialsExpiresDate = cal.getTime();