1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.spring.security.ldaptive.userdetails;
18
19 import static java.util.Objects.nonNull;
20
21 import lombok.AccessLevel;
22 import lombok.Getter;
23 import org.bremersee.spring.security.ldaptive.authentication.AccountControlEvaluator;
24 import org.bremersee.spring.security.ldaptive.authentication.provider.NoAccountControlEvaluator;
25 import org.ldaptive.LdapEntry;
26
27
28
29
30
31
32 public class LdaptiveEvaluatedRememberMeTokenProvider implements LdaptiveRememberMeTokenProvider {
33
34
35
36
37 @Getter(AccessLevel.PROTECTED)
38 private AccountControlEvaluator accountControlEvaluator = new NoAccountControlEvaluator();
39
40
41
42
43 public LdaptiveEvaluatedRememberMeTokenProvider() {
44 this(null);
45 }
46
47
48
49
50
51
52 public LdaptiveEvaluatedRememberMeTokenProvider(
53 AccountControlEvaluator accountControlEvaluator) {
54 setAccountControlEvaluator(accountControlEvaluator);
55 }
56
57
58
59
60
61
62 public void setAccountControlEvaluator(AccountControlEvaluator accountControlEvaluator) {
63 if (nonNull(accountControlEvaluator)) {
64 this.accountControlEvaluator = accountControlEvaluator;
65 }
66 }
67
68 @Override
69 public String getRememberMeToken(LdapEntry ldapEntry) {
70 return getAccessControlValue(ldapEntry) + ldapEntry.getDn();
71 }
72
73
74
75
76
77
78
79 protected String getAccessControlValue(LdapEntry ldapEntry) {
80 return String.format("%s:%s:%s:%s-",
81 accountControlEvaluator.isAccountNonExpired(ldapEntry),
82 accountControlEvaluator.isAccountNonLocked(ldapEntry),
83 accountControlEvaluator.isCredentialsNonExpired(ldapEntry),
84 accountControlEvaluator.isEnabled(ldapEntry));
85 }
86
87 }