From 4da8aec86ec27fb5a705553fdcc34d227f7b2db9 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Sat, 19 Jan 2008 17:58:09 +0000 Subject: [PATCH] bug fix git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@6763 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/security/HudsonFilter.java | 9 ++++++--- .../WEB-INF/security/HudsonPrivateSecurityRealm.groovy | 7 +++++-- .../WEB-INF/security/LDAPBindSecurityRealm.groovy | 3 ++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/security/HudsonFilter.java b/core/src/main/java/hudson/security/HudsonFilter.java index 5f3ca20fa4..315d7cfa2f 100644 --- a/core/src/main/java/hudson/security/HudsonFilter.java +++ b/core/src/main/java/hudson/security/HudsonFilter.java @@ -52,7 +52,7 @@ public class HudsonFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { Binding binding = new Binding(); binding.setVariable("authenticationManagerProxy", AUTHENTICATION_MANAGER); - binding.setVariable("UserDetailsServiceProxy", USER_DETAILS_SERVICE_PROXY); + binding.setVariable("userDetailsServiceProxy", USER_DETAILS_SERVICE_PROXY); binding.setVariable("app", Hudson.getInstance()); BeanBuilder builder = new BeanBuilder(); builder.parse(filterConfig.getServletContext().getResourceAsStream("/WEB-INF/security/SecurityFilters.groovy"),binding); @@ -87,7 +87,10 @@ public class HudsonFilter implements Filter { } public void destroy() { - legacy.destroy(); - acegi.destroy(); + // these fields can be null if HudsonFilter.init() fails in the middle + if(legacy!=null) + legacy.destroy(); + if(acegi!=null) + acegi.destroy(); } } diff --git a/war/resources/WEB-INF/security/HudsonPrivateSecurityRealm.groovy b/war/resources/WEB-INF/security/HudsonPrivateSecurityRealm.groovy index fa4ac420f5..45f2ea36d9 100644 --- a/war/resources/WEB-INF/security/HudsonPrivateSecurityRealm.groovy +++ b/war/resources/WEB-INF/security/HudsonPrivateSecurityRealm.groovy @@ -6,18 +6,21 @@ import hudson.security.HudsonPrivateSecurityRealm.HudsonUserDetailsService import org.acegisecurity.providers.dao.DaoAuthenticationProvider import org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider import org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider +import hudson.model.Hudson +userDetailsService(HudsonUserDetailsService) {} + authenticationManager(ProviderManager) { providers = [ // the primary authentication source is Hudson's own user database bean(DaoAuthenticationProvider) { - userDetailsService = new HudsonUserDetailsService() + userDetailsService = userDetailsService }, // these providers apply everywhere bean(RememberMeAuthenticationProvider) { - key = app.getSecretKey(); + key = Hudson.getInstance().getSecretKey(); }, // this doesn't mean we allow anonymous access. // we just authenticate anonymous users as such, diff --git a/war/resources/WEB-INF/security/LDAPBindSecurityRealm.groovy b/war/resources/WEB-INF/security/LDAPBindSecurityRealm.groovy index 06fe76ec86..568e7f5128 100644 --- a/war/resources/WEB-INF/security/LDAPBindSecurityRealm.groovy +++ b/war/resources/WEB-INF/security/LDAPBindSecurityRealm.groovy @@ -6,6 +6,7 @@ import org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulato import org.acegisecurity.ldap.DefaultInitialDirContextFactory import org.acegisecurity.ldap.search.FilterBasedLdapUserSearch import org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider +import hudson.model.Hudson /* Configure LDAP as the authentication realm. @@ -42,7 +43,7 @@ authenticationManager(ProviderManager) { // these providers apply everywhere bean(RememberMeAuthenticationProvider) { - key = app.getSecretKey(); + key = Hudson.getInstance().getSecretKey(); }, // this doesn't mean we allow anonymous access. // we just authenticate anonymous users as such,