1818
1919import java .util .Collections ;
2020import java .util .Map ;
21- import java .util .Objects ;
2221
2322import jakarta .servlet .http .HttpServletRequest ;
2423
@@ -91,7 +90,7 @@ public OneTimeTokenLoginConfigurer(ApplicationContext context) {
9190
9291 @ Override
9392 public void init (H http ) {
94- AuthenticationProvider authenticationProvider = getAuthenticationProvider (http );
93+ AuthenticationProvider authenticationProvider = getAuthenticationProvider ();
9594 http .authenticationProvider (postProcess (authenticationProvider ));
9695 configureDefaultLoginPage (http );
9796 }
@@ -138,17 +137,19 @@ private SecurityContextRepository getSecurityContextRepository(H http) {
138137 }
139138
140139 private void configureOttGenerateFilter (H http ) {
141- GenerateOneTimeTokenFilter generateFilter = new GenerateOneTimeTokenFilter (getOneTimeTokenService (http ),
142- getOneTimeTokenGenerationSuccessHandler (http ));
140+ GenerateOneTimeTokenFilter generateFilter = new GenerateOneTimeTokenFilter (getOneTimeTokenService (),
141+ getOneTimeTokenGenerationSuccessHandler ());
143142 generateFilter .setRequestMatcher (antMatcher (HttpMethod .POST , this .tokenGeneratingUrl ));
144- generateFilter .setRequestResolver (getGenerateRequestResolver (http ));
143+ generateFilter .setRequestResolver (getGenerateRequestResolver ());
145144 http .addFilter (postProcess (generateFilter ));
146145 http .addFilter (DefaultResourcesFilter .css ());
147146 }
148147
149- private OneTimeTokenGenerationSuccessHandler getOneTimeTokenGenerationSuccessHandler (H http ) {
148+ private OneTimeTokenGenerationSuccessHandler getOneTimeTokenGenerationSuccessHandler () {
150149 if (this .oneTimeTokenGenerationSuccessHandler == null ) {
151- this .oneTimeTokenGenerationSuccessHandler = getBeanOrNull (http , OneTimeTokenGenerationSuccessHandler .class );
150+ this .oneTimeTokenGenerationSuccessHandler = getContext ()
151+ .getBeanProvider (OneTimeTokenGenerationSuccessHandler .class )
152+ .getIfUnique ();
152153 }
153154 if (this .oneTimeTokenGenerationSuccessHandler == null ) {
154155 throw new IllegalStateException ("""
@@ -170,12 +171,12 @@ private void configureSubmitPage(H http) {
170171 http .addFilter (postProcess (submitPage ));
171172 }
172173
173- private AuthenticationProvider getAuthenticationProvider (H http ) {
174+ private AuthenticationProvider getAuthenticationProvider () {
174175 if (this .authenticationProvider != null ) {
175176 return this .authenticationProvider ;
176177 }
177178 UserDetailsService userDetailsService = getContext ().getBean (UserDetailsService .class );
178- this .authenticationProvider = new OneTimeTokenAuthenticationProvider (getOneTimeTokenService (http ),
179+ this .authenticationProvider = new OneTimeTokenAuthenticationProvider (getOneTimeTokenService (),
179180 userDetailsService );
180181 return this .authenticationProvider ;
181182 }
@@ -321,45 +322,31 @@ public OneTimeTokenLoginConfigurer<H> generateRequestResolver(GenerateOneTimeTok
321322 return this ;
322323 }
323324
324- private GenerateOneTimeTokenRequestResolver getGenerateRequestResolver (H http ) {
325+ private GenerateOneTimeTokenRequestResolver getGenerateRequestResolver () {
325326 if (this .requestResolver != null ) {
326327 return this .requestResolver ;
327328 }
328- GenerateOneTimeTokenRequestResolver bean = getBeanOrNull ( http , GenerateOneTimeTokenRequestResolver .class );
329- this . requestResolver = Objects . requireNonNullElseGet ( bean , DefaultGenerateOneTimeTokenRequestResolver ::new );
329+ this . requestResolver = getContext (). getBeanProvider ( GenerateOneTimeTokenRequestResolver .class )
330+ . getIfUnique ( DefaultGenerateOneTimeTokenRequestResolver ::new );
330331 return this .requestResolver ;
331332 }
332333
333- private OneTimeTokenService getOneTimeTokenService (H http ) {
334+ private OneTimeTokenService getOneTimeTokenService () {
334335 if (this .oneTimeTokenService != null ) {
335336 return this .oneTimeTokenService ;
336337 }
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 = getContext ().getBeanProvider (OneTimeTokenService .class )
339+ .getIfUnique (InMemoryOneTimeTokenService ::new );
344340 return this .oneTimeTokenService ;
345341 }
346342
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-
356343 private Map <String , String > hiddenInputs (HttpServletRequest request ) {
357344 CsrfToken token = (CsrfToken ) request .getAttribute (CsrfToken .class .getName ());
358345 return (token != null ) ? Collections .singletonMap (token .getParameterName (), token .getToken ())
359346 : Collections .emptyMap ();
360347 }
361348
362- public ApplicationContext getContext () {
349+ private ApplicationContext getContext () {
363350 return this .context ;
364351 }
365352
0 commit comments