1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.ldap.client.template;
22
23
24 import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicy;
25 import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyErrorEnum;
26 import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
27
28
29
30
31
32
33
34 class PasswordWarningImpl implements PasswordWarning
35 {
36 private static final long serialVersionUID = -8952246313604352357L;
37
38 private int timeBeforeExpiration = -1;
39 private int graceAuthNsRemaining = -1;
40 private boolean changeAfterReset = false;
41
42
43 private PasswordWarningImpl()
44 {
45 }
46
47
48 public static PasswordWarning newWarning( PasswordPolicy policy )
49 {
50 PasswordPolicyResponse response = policy.getResponse();
51 if ( response != null )
52 {
53 PasswordWarningImpl policyWarning = new PasswordWarningImpl();
54 policyWarning.timeBeforeExpiration = response.getTimeBeforeExpiration();
55 policyWarning.graceAuthNsRemaining = response.getGraceAuthNRemaining();
56 policyWarning.changeAfterReset = response.getPasswordPolicyError() ==
57 PasswordPolicyErrorEnum.CHANGE_AFTER_RESET;
58
59 if ( policyWarning.timeBeforeExpiration >= 0 || policyWarning.graceAuthNsRemaining >= 0
60 || policyWarning.changeAfterReset )
61 {
62
63 return policyWarning;
64 }
65 }
66 return null;
67 }
68
69
70 @Override
71 public int getTimeBeforeExpiration()
72 {
73 return timeBeforeExpiration;
74 }
75
76
77 @Override
78 public int getGraceAuthNsRemaining()
79 {
80 return graceAuthNsRemaining;
81 }
82
83
84 @Override
85 public boolean isChangeAfterReset()
86 {
87 return changeAfterReset;
88 }
89 }