Skip to content

Commit ff8002e

Browse files
committed
Polish gh-4557
1 parent 71a5c95 commit ff8002e

File tree

27 files changed

+595
-909
lines changed

27 files changed

+595
-909
lines changed

config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java

+36-39
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,10 @@ final class AuthenticationConfigBuilder {
139139
private String openIDLoginPage;
140140

141141
private String oauth2LoginFilterId;
142-
private String oauth2AuthorizationRequestRedirectFilterId;
143142
private BeanDefinition oauth2AuthorizationRequestRedirectFilter;
144143
private BeanDefinition oauth2LoginEntryPoint;
145144
private BeanReference oauth2LoginAuthenticationProviderRef;
146145
private BeanReference oauth2LoginOidcAuthenticationProviderRef;
147-
148146
private BeanDefinition oauth2LoginLinks;
149147

150148
AuthenticationConfigBuilder(Element element, boolean forceAutoConfig,
@@ -247,43 +245,42 @@ void createFormLoginFilter(BeanReference sessionStrategy, BeanReference authMana
247245

248246
void createOAuth2LoginFilter(BeanReference sessionStrategy, BeanReference authManager) {
249247
Element oauth2LoginElt = DomUtils.getChildElementByTagName(this.httpElt, Elements.OAUTH2_LOGIN);
250-
if (oauth2LoginElt != null) {
251-
OAuth2LoginBeanDefinitionParser parser = new OAuth2LoginBeanDefinitionParser(requestCache, portMapper,
252-
portResolver, sessionStrategy, allowSessionCreation);
253-
BeanDefinition oauth2LoginFilterBean = parser.parse(oauth2LoginElt, this.pc);
254-
oauth2LoginFilterBean.getPropertyValues().addPropertyValue("authenticationManager", authManager);
255-
256-
// retrieve the other bean result
257-
BeanDefinition oauth2LoginAuthProvider = parser.getOAuth2LoginAuthenticationProvider();
258-
oauth2AuthorizationRequestRedirectFilter = parser.getOAuth2AuthorizationRequestRedirectFilter();
259-
oauth2LoginEntryPoint = parser.getOAuth2LoginAuthenticationEntryPoint();
260-
261-
// generate bean name to be registered
262-
String oauth2LoginAuthenticationProviderId = pc.getReaderContext()
263-
.generateBeanName(oauth2LoginAuthProvider);
264-
oauth2LoginFilterId = pc.getReaderContext().generateBeanName(oauth2LoginFilterBean);
265-
oauth2AuthorizationRequestRedirectFilterId = pc.getReaderContext()
266-
.generateBeanName(oauth2AuthorizationRequestRedirectFilter);
267-
oauth2LoginLinks = parser.getOAuth2LoginLinks();
268-
269-
// register the component
270-
pc.registerBeanComponent(new BeanComponentDefinition(oauth2AuthorizationRequestRedirectFilter,
271-
oauth2AuthorizationRequestRedirectFilterId));
272-
pc.registerBeanComponent(new BeanComponentDefinition(oauth2LoginFilterBean, oauth2LoginFilterId));
273-
pc.registerBeanComponent(
274-
new BeanComponentDefinition(oauth2LoginAuthProvider, oauth2LoginAuthenticationProviderId));
275-
276-
oauth2LoginAuthenticationProviderRef = new RuntimeBeanReference(oauth2LoginAuthenticationProviderId);
277-
278-
// oidc provider
279-
BeanDefinition oauth2LoginOidcAuthProvider = parser.getOAuth2LoginOidcAuthenticationProvider();
280-
String oauth2LoginOidcAuthenticationProviderId = pc.getReaderContext()
281-
.generateBeanName(oauth2LoginOidcAuthProvider);
282-
pc.registerBeanComponent(
283-
new BeanComponentDefinition(oauth2LoginOidcAuthProvider, oauth2LoginOidcAuthenticationProviderId));
284-
oauth2LoginOidcAuthenticationProviderRef = new RuntimeBeanReference(
285-
oauth2LoginOidcAuthenticationProviderId);
248+
if (oauth2LoginElt == null) {
249+
return;
286250
}
251+
252+
OAuth2LoginBeanDefinitionParser parser = new OAuth2LoginBeanDefinitionParser(requestCache, portMapper,
253+
portResolver, sessionStrategy, allowSessionCreation);
254+
BeanDefinition oauth2LoginFilterBean = parser.parse(oauth2LoginElt, this.pc);
255+
oauth2LoginFilterBean.getPropertyValues().addPropertyValue("authenticationManager", authManager);
256+
257+
// retrieve the other bean result
258+
BeanDefinition oauth2LoginAuthProvider = parser.getOAuth2LoginAuthenticationProvider();
259+
oauth2AuthorizationRequestRedirectFilter = parser.getOAuth2AuthorizationRequestRedirectFilter();
260+
oauth2LoginEntryPoint = parser.getOAuth2LoginAuthenticationEntryPoint();
261+
262+
// generate bean name to be registered
263+
String oauth2LoginAuthProviderId = pc.getReaderContext()
264+
.generateBeanName(oauth2LoginAuthProvider);
265+
oauth2LoginFilterId = pc.getReaderContext().generateBeanName(oauth2LoginFilterBean);
266+
String oauth2AuthorizationRequestRedirectFilterId = pc.getReaderContext()
267+
.generateBeanName(oauth2AuthorizationRequestRedirectFilter);
268+
oauth2LoginLinks = parser.getOAuth2LoginLinks();
269+
270+
// register the component
271+
pc.registerBeanComponent(new BeanComponentDefinition(oauth2LoginFilterBean, oauth2LoginFilterId));
272+
pc.registerBeanComponent(new BeanComponentDefinition(
273+
oauth2AuthorizationRequestRedirectFilter, oauth2AuthorizationRequestRedirectFilterId));
274+
pc.registerBeanComponent(new BeanComponentDefinition(oauth2LoginAuthProvider, oauth2LoginAuthProviderId));
275+
276+
oauth2LoginAuthenticationProviderRef = new RuntimeBeanReference(oauth2LoginAuthProviderId);
277+
278+
// oidc provider
279+
BeanDefinition oauth2LoginOidcAuthProvider = parser.getOAuth2LoginOidcAuthenticationProvider();
280+
String oauth2LoginOidcAuthProviderId = pc.getReaderContext().generateBeanName(oauth2LoginOidcAuthProvider);
281+
pc.registerBeanComponent(new BeanComponentDefinition(
282+
oauth2LoginOidcAuthProvider, oauth2LoginOidcAuthProviderId));
283+
oauth2LoginOidcAuthenticationProviderRef = new RuntimeBeanReference(oauth2LoginOidcAuthProviderId);
287284
}
288285

289286
void createOpenIDLoginFilter(BeanReference sessionStrategy, BeanReference authManager) {
@@ -870,7 +867,7 @@ List<OrderDecorator> getFilters() {
870867

871868
if (oauth2LoginFilterId != null) {
872869
filters.add(new OrderDecorator(new RuntimeBeanReference(oauth2LoginFilterId), OAUTH2_LOGIN_FILTER));
873-
filters.add(new OrderDecorator(oauth2AuthorizationRequestRedirectFilter, OAUTH2_REDIRECT_FILTER));
870+
filters.add(new OrderDecorator(oauth2AuthorizationRequestRedirectFilter, OAUTH2_AUTHORIZATION_REQUEST_FILTER));
874871
}
875872

876873
if (openIDFilterId != null) {

0 commit comments

Comments
 (0)