Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSpringLDAP-警告LDAP密码过期_Java_Spring_Active Directory - Fatal编程技术网

JavaSpringLDAP-警告LDAP密码过期

JavaSpringLDAP-警告LDAP密码过期,java,spring,active-directory,Java,Spring,Active Directory,我们正在使用active directory管理用户帐户。现在我们要使用密码策略设置最大密码期限,以强制用户在2个月后重置密码。我们需要在用户登录后警告其密码是否即将过期(例如,3天)。 我们怎样才能得到这个呢?我们使用的是SpringLDAP 1.3.0。 我在谷歌上搜索,发现域中设置了密码最大年龄属性。然而,我不知道如何得到这个值 谢谢 COL凭证过期日期和时间 获取上次更改密码的日期和时间: private final static long DIFF_NET_JAVA_FOR_DATE_

我们正在使用active directory管理用户帐户。现在我们要使用密码策略设置最大密码期限,以强制用户在2个月后重置密码。我们需要在用户登录后警告其密码是否即将过期(例如,3天)。 我们怎样才能得到这个呢?我们使用的是SpringLDAP 1.3.0。 我在谷歌上搜索,发现域中设置了密码最大年龄属性。然而,我不知道如何得到这个值

谢谢
COL

凭证过期日期和时间

获取上次更改密码的日期和时间:

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();

您需要使用扩展密码请求和响应控件来获取此信息。请参阅我的答案,以获取必要Java代码的链接。

完全垃圾。所有这些都不符合LDAP或密码策略。一定要读这个问题。