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 final 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 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() == PasswordPolicyErrorEnum.CHANGE_AFTER_RESET;
57
58 if ( policyWarning.timeBeforeExpiration >= 0 || policyWarning.graceAuthNsRemaining >= 0
59 || policyWarning.changeAfterReset )
60 {
61
62 return policyWarning;
63 }
64 }
65 return null;
66 }
67
68
69
70
71
72 @Override
73 public int getTimeBeforeExpiration()
74 {
75 return timeBeforeExpiration;
76 }
77
78
79
80
81
82 @Override
83 public int getGraceAuthNsRemaining()
84 {
85 return graceAuthNsRemaining;
86 }
87
88
89
90
91
92 @Override
93 public boolean isChangeAfterReset()
94 {
95 return changeAfterReset;
96 }
97 }