1 package org.bremersee.spring.boot.autoconfigure.security.authentication;
2
3 import static org.assertj.core.api.Assertions.assertThat;
4 import static org.mockito.Mockito.mock;
5
6 import org.assertj.core.api.SoftAssertions;
7 import org.assertj.core.api.junit.jupiter.SoftAssertionsExtension;
8 import org.bremersee.spring.security.core.EmailToUsernameResolver;
9 import org.bremersee.spring.security.ldaptive.authentication.AccountControlEvaluator;
10 import org.bremersee.spring.security.ldaptive.authentication.LdaptiveAuthentication;
11 import org.bremersee.spring.security.ldaptive.userdetails.LdaptiveRememberMeTokenProvider;
12 import org.bremersee.spring.security.ldaptive.userdetails.LdaptiveUserDetails;
13 import org.junit.jupiter.api.BeforeEach;
14 import org.junit.jupiter.api.Test;
15 import org.junit.jupiter.api.extension.ExtendWith;
16 import org.ldaptive.ConnectionConfig;
17 import org.springframework.beans.factory.ObjectProvider;
18 import org.springframework.core.convert.converter.Converter;
19 import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
20
21
22
23
24 @ExtendWith(SoftAssertionsExtension.class)
25 class LdaptiveAuthenticationAutoConfigurationTest {
26
27
28
29
30 final AuthenticationProperties properties = new AuthenticationProperties();
31
32
33
34
35 LdaptiveAuthenticationAutoConfiguration target;
36
37
38
39
40 @BeforeEach
41 void init() {
42 properties.getLdaptive().setUserBaseDn("cn=users,dc=example,dc=org");
43 target = new LdaptiveAuthenticationAutoConfiguration(properties);
44 }
45
46
47
48
49 @Test
50 void ldaptivePasswordEncoderProvider() {
51 assertThat(target.ldaptivePasswordEncoderProvider())
52 .isNotNull();
53 }
54
55
56
57
58 @Test
59 void ldaptiveAuthenticationManager() {
60 ConnectionConfig connectionConfig = ConnectionConfig.builder().build();
61
62 ObjectProvider<EmailToUsernameResolver> emailToUsernameResolver = mock();
63 ObjectProvider<AccountControlEvaluator> accountControlEvaluator = mock();
64 ObjectProvider<GrantedAuthoritiesMapper> grantedAuthoritiesMapper = mock();
65 ObjectProvider<Converter<LdaptiveUserDetails, LdaptiveAuthentication>> tokenConverter = mock();
66 assertThat(target
67 .ldaptiveAuthenticationManager(
68 connectionConfig,
69 mock(),
70 mock(),
71 target.ldaptivePasswordEncoderProvider(),
72 LdaptiveRememberMeTokenProvider.invalid(),
73 emailToUsernameResolver,
74 accountControlEvaluator,
75 grantedAuthoritiesMapper,
76 tokenConverter))
77 .isNotNull();
78 }
79
80
81
82
83 @Test
84 void reactiveLdaptiveAuthenticationManager() {
85 ConnectionConfig connectionConfig = ConnectionConfig.builder().build();
86 ObjectProvider<EmailToUsernameResolver> emailToUsernameResolver = mock();
87 ObjectProvider<AccountControlEvaluator> accountControlEvaluator = mock();
88 ObjectProvider<GrantedAuthoritiesMapper> grantedAuthoritiesMapper = mock();
89 ObjectProvider<Converter<LdaptiveUserDetails, LdaptiveAuthentication>> tokenConverter = mock();
90 assertThat(target
91 .reactiveLdaptiveAuthenticationManager(
92 connectionConfig,
93 mock(),
94 mock(),
95 target.ldaptivePasswordEncoderProvider(),
96 LdaptiveRememberMeTokenProvider.invalid(),
97 emailToUsernameResolver,
98 accountControlEvaluator,
99 grantedAuthoritiesMapper,
100 tokenConverter))
101 .isNotNull();
102 }
103
104
105
106
107
108
109 @Test
110 void ldaptiveRememberMeTokenProvider(SoftAssertions softly) {
111 ObjectProvider<AccountControlEvaluator> evaluator = mock();
112 softly
113 .assertThat(target.ldaptiveRememberMeTokenProvider(evaluator))
114 .isNotNull();
115
116 properties.getLdaptive().setPasswordLastSetAttribute("pwdLastSet");
117 softly
118 .assertThat(target.ldaptiveRememberMeTokenProvider(evaluator))
119 .isNotNull();
120 }
121 }