diff --git a/core/src/main/java/hudson/security/LegacySecurityRealm.java b/core/src/main/java/hudson/security/LegacySecurityRealm.java index f2536dd0da2135803e22ea960940425e96b6bec9..361a731bd7df5b81ec822f3d7fdfc97bcb8d1a5c 100644 --- a/core/src/main/java/hudson/security/LegacySecurityRealm.java +++ b/core/src/main/java/hudson/security/LegacySecurityRealm.java @@ -54,9 +54,7 @@ public final class LegacySecurityRealm extends SecurityRealm implements Authenti public Filter createFilter(FilterConfig filterConfig) { Binding binding = new Binding(); SecurityComponents sc = this.createSecurityComponents(); - binding.setVariable("authenticationManagerProxy", sc.manager); - binding.setVariable("userDetailsServiceProxy", sc.userDetails); - binding.setVariable("rememberMeServicesProxy", sc.rememberMe); + binding.setVariable("securityComponents", sc); BeanBuilder builder = new BeanBuilder(); builder.parse(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/security/SecurityFilters.groovy"),binding); diff --git a/core/src/main/java/hudson/security/SecurityRealm.java b/core/src/main/java/hudson/security/SecurityRealm.java index 5b80e5c1f2d20ac56c64a881032d1f3713a0b436..3f05239d7ff0d05ca0c725fdb15aa942205beef9 100644 --- a/core/src/main/java/hudson/security/SecurityRealm.java +++ b/core/src/main/java/hudson/security/SecurityRealm.java @@ -240,10 +240,8 @@ public abstract class SecurityRealm implements Describable, Exten */ public Filter createFilter(FilterConfig filterConfig) { Binding binding = new Binding(); - SecurityComponents sc = this.getSecurityComponents(); - binding.setVariable("authenticationManagerProxy", sc.manager); - binding.setVariable("userDetailsServiceProxy", sc.userDetails); - binding.setVariable("rememberMeServicesProxy", sc.rememberMe); + SecurityComponents sc = this.createSecurityComponents(); + binding.setVariable("securityComponents", sc); BeanBuilder builder = new BeanBuilder(); builder.parse(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/security/SecurityFilters.groovy"),binding); WebApplicationContext context = builder.createApplicationContext(); diff --git a/war/resources/WEB-INF/security/SecurityFilters.groovy b/war/resources/WEB-INF/security/SecurityFilters.groovy index f166496a4dc8a2e28eac33d5c4aa76d0b72cad3c..18aca320ab6427450d459b82d123097f6c8bc6a6 100644 --- a/war/resources/WEB-INF/security/SecurityFilters.groovy +++ b/war/resources/WEB-INF/security/SecurityFilters.groovy @@ -40,7 +40,7 @@ filter(ChainedServletFilter) { }, // allow clients to submit basic authentication credential bean(BasicProcessingFilter) { - authenticationManager = authenticationManagerProxy + authenticationManager = securityComponents.manager // if basic authentication fails (which only happens incorrect basic auth credential is sent), // respond with 401 with basic auth request, instead of redirecting the user to the login page, // since users of basic auth tends to be a program and won't see the redirection to the form @@ -50,15 +50,15 @@ filter(ChainedServletFilter) { } }, bean(AuthenticationProcessingFilter2) { - authenticationManager = authenticationManagerProxy - rememberMeServices = rememberMeServicesProxy; + authenticationManager = securityComponents.manager + rememberMeServices = securityComponents.rememberMe authenticationFailureUrl = "/loginError" defaultTargetUrl = "/" filterProcessesUrl = "/j_acegi_security_check" }, bean(RememberMeProcessingFilter) { - rememberMeServices = rememberMeServicesProxy; - authenticationManager = authenticationManagerProxy; + rememberMeServices = securityComponents.rememberMe + authenticationManager = securityComponents.manager }, ] + commonProviders("/login?from={0}") }