18
18
19
19
import java .util .Collections ;
20
20
import java .util .Map ;
21
- import java .util .Objects ;
22
21
23
22
import jakarta .servlet .http .HttpServletRequest ;
24
23
@@ -91,7 +90,7 @@ public OneTimeTokenLoginConfigurer(ApplicationContext context) {
91
90
92
91
@ Override
93
92
public void init (H http ) {
94
- AuthenticationProvider authenticationProvider = getAuthenticationProvider (http );
93
+ AuthenticationProvider authenticationProvider = getAuthenticationProvider ();
95
94
http .authenticationProvider (postProcess (authenticationProvider ));
96
95
configureDefaultLoginPage (http );
97
96
}
@@ -138,17 +137,19 @@ private SecurityContextRepository getSecurityContextRepository(H http) {
138
137
}
139
138
140
139
private void configureOttGenerateFilter (H http ) {
141
- GenerateOneTimeTokenFilter generateFilter = new GenerateOneTimeTokenFilter (getOneTimeTokenService (http ),
142
- getOneTimeTokenGenerationSuccessHandler (http ));
140
+ GenerateOneTimeTokenFilter generateFilter = new GenerateOneTimeTokenFilter (getOneTimeTokenService (),
141
+ getOneTimeTokenGenerationSuccessHandler ());
143
142
generateFilter .setRequestMatcher (antMatcher (HttpMethod .POST , this .tokenGeneratingUrl ));
144
- generateFilter .setRequestResolver (getGenerateRequestResolver (http ));
143
+ generateFilter .setRequestResolver (getGenerateRequestResolver ());
145
144
http .addFilter (postProcess (generateFilter ));
146
145
http .addFilter (DefaultResourcesFilter .css ());
147
146
}
148
147
149
- private OneTimeTokenGenerationSuccessHandler getOneTimeTokenGenerationSuccessHandler (H http ) {
148
+ private OneTimeTokenGenerationSuccessHandler getOneTimeTokenGenerationSuccessHandler () {
150
149
if (this .oneTimeTokenGenerationSuccessHandler == null ) {
151
- this .oneTimeTokenGenerationSuccessHandler = getBeanOrNull (http , OneTimeTokenGenerationSuccessHandler .class );
150
+ this .oneTimeTokenGenerationSuccessHandler = this .context
151
+ .getBeanProvider (OneTimeTokenGenerationSuccessHandler .class )
152
+ .getIfUnique ();
152
153
}
153
154
if (this .oneTimeTokenGenerationSuccessHandler == null ) {
154
155
throw new IllegalStateException ("""
@@ -170,12 +171,12 @@ private void configureSubmitPage(H http) {
170
171
http .addFilter (postProcess (submitPage ));
171
172
}
172
173
173
- private AuthenticationProvider getAuthenticationProvider (H http ) {
174
+ private AuthenticationProvider getAuthenticationProvider () {
174
175
if (this .authenticationProvider != null ) {
175
176
return this .authenticationProvider ;
176
177
}
177
- UserDetailsService userDetailsService = getContext () .getBean (UserDetailsService .class );
178
- this .authenticationProvider = new OneTimeTokenAuthenticationProvider (getOneTimeTokenService (http ),
178
+ UserDetailsService userDetailsService = this . context .getBean (UserDetailsService .class );
179
+ this .authenticationProvider = new OneTimeTokenAuthenticationProvider (getOneTimeTokenService (),
179
180
userDetailsService );
180
181
return this .authenticationProvider ;
181
182
}
@@ -321,44 +322,34 @@ public OneTimeTokenLoginConfigurer<H> generateRequestResolver(GenerateOneTimeTok
321
322
return this ;
322
323
}
323
324
324
- private GenerateOneTimeTokenRequestResolver getGenerateRequestResolver (H http ) {
325
+ private GenerateOneTimeTokenRequestResolver getGenerateRequestResolver () {
325
326
if (this .requestResolver != null ) {
326
327
return this .requestResolver ;
327
328
}
328
- GenerateOneTimeTokenRequestResolver bean = getBeanOrNull ( http , GenerateOneTimeTokenRequestResolver .class );
329
- this . requestResolver = Objects . requireNonNullElseGet ( bean , DefaultGenerateOneTimeTokenRequestResolver ::new );
329
+ this . requestResolver = this . context . getBeanProvider ( GenerateOneTimeTokenRequestResolver .class )
330
+ . getIfUnique ( DefaultGenerateOneTimeTokenRequestResolver ::new );
330
331
return this .requestResolver ;
331
332
}
332
333
333
- private OneTimeTokenService getOneTimeTokenService (H http ) {
334
+ private OneTimeTokenService getOneTimeTokenService () {
334
335
if (this .oneTimeTokenService != null ) {
335
336
return this .oneTimeTokenService ;
336
337
}
337
- OneTimeTokenService bean = getBeanOrNull (http , OneTimeTokenService .class );
338
- if (bean != null ) {
339
- this .oneTimeTokenService = bean ;
340
- }
341
- else {
342
- this .oneTimeTokenService = new InMemoryOneTimeTokenService ();
343
- }
338
+ this .oneTimeTokenService = this .context .getBeanProvider (OneTimeTokenService .class )
339
+ .getIfUnique (InMemoryOneTimeTokenService ::new );
344
340
return this .oneTimeTokenService ;
345
341
}
346
342
347
- private <C > C getBeanOrNull (H http , Class <C > clazz ) {
348
- ApplicationContext context = http .getSharedObject (ApplicationContext .class );
349
- if (context == null ) {
350
- return null ;
351
- }
352
-
353
- return context .getBeanProvider (clazz ).getIfUnique ();
354
- }
355
-
356
343
private Map <String , String > hiddenInputs (HttpServletRequest request ) {
357
344
CsrfToken token = (CsrfToken ) request .getAttribute (CsrfToken .class .getName ());
358
345
return (token != null ) ? Collections .singletonMap (token .getParameterName (), token .getToken ())
359
346
: Collections .emptyMap ();
360
347
}
361
348
349
+ /**
350
+ * @deprecated Use this.context instead
351
+ */
352
+ @ Deprecated
362
353
public ApplicationContext getContext () {
363
354
return this .context ;
364
355
}
0 commit comments