From e793f475b7e645dd212f939ded8738ee4625dbbb Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Fri, 9 Oct 2015 09:50:19 +0100 Subject: [PATCH] change the switch for checking auth providers to compare class names as strings --- files/puppet_helper.groovy | 86 +++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/files/puppet_helper.groovy b/files/puppet_helper.groovy index baa8bc77b..27b97435a 100644 --- a/files/puppet_helper.groovy +++ b/files/puppet_helper.groovy @@ -632,13 +632,14 @@ class Actions { def j = Jenkins.getInstance() def realm = j.getSecurityRealm() + def className = realm.getClass().getName() def config - switch (realm) { + switch (className) { // "Jenkins’ own user database" - case hudson.security.HudsonPrivateSecurityRealm: + case 'hudson.security.HudsonPrivateSecurityRealm': config = [ setSecurityRealm: [ - (realm.getClass().getName()): [ + (className): [ realm.allowsSignup(), realm.isEnableCaptcha(), null, @@ -648,10 +649,10 @@ class Actions { break // "Unix user/group database" - case hudson.security.PAMSecurityRealm: + case 'hudson.security.PAMSecurityRealm': config = [ setSecurityRealm: [ - (realm.getClass().getName()): [ + (className): [ // there is no accessor for the serviceName field realm.@serviceName ], @@ -661,10 +662,10 @@ class Actions { // active-directory // ActiveDirectorySecurityRealm(String domain, String site, String bindName, String bindPassword, String server) - case hudson.plugins.active_directory.ActiveDirectorySecurityRealm: + case 'hudson.plugins.active_directory.ActiveDirectorySecurityRealm': config = [ setSecurityRealm: [ - (realm.getClass().getName()): [ + (className): [ realm.domain, realm.site, realm.bindName, @@ -680,19 +681,19 @@ class Actions { // public LDAPSecurityRealm(String server, String rootDN, String userSearchBase, String userSearch, String groupSearchBase, String groupSearchFilter, LDAPGroupMembershipStrategy groupMembershipStrategy, String managerDN, Secret managerPasswordSecret, boolean inhibitInferRootDN, boolean disableMailAddressResolver, CacheConfiguration cache, EnvironmentProperty[] environmentProperties, String displayNameAttributeName, String mailAddressAttributeName, IdStrategy userIdStrategy, IdStrategy groupIdStrategy) // github-oauth -// case org.jenkinsci.plugins.GithubSecurityRealm: -// config = [ -// setSecurityRealm: [ -// (realm.getClass().getName()): [ -// realm.getGithubWebUri(), -// realm.getGithubApiUri(), -// realm.getClientID(), -// realm.getClientSecret(), -// realm.getOauthScopes(), -// ], -// ], -// ] -// break + case 'org.jenkinsci.plugins.GithubSecurityRealm': + config = [ + setSecurityRealm: [ + (className): [ + realm.getGithubWebUri(), + realm.getGithubApiUri(), + realm.getClientID(), + realm.getClientSecret(), + realm.getOauthScopes(), + ], + ], + ] + break // constructor with no arguments // "Delegate to servlet container" @@ -717,45 +718,46 @@ class Actions { def j = Jenkins.getInstance() def strategy = j.getAuthorizationStrategy() + def className = strategy.getClass().getName() def config switch (strategy) { // github-oauth -// case org.jenkinsci.plugins.GithubAuthorizationStrategy: -// config = [ -// setAuthorizationStrategy: [ -// (strategy.getClass().getName()): [ -// strategy.adminUserNames, -// strategy.authenticatedUserReadPermission, -// strategy.useRepositoryPermissions, -// strategy.authenticatedUserCreateJobPermission, -// strategy.organizationNames, -// strategy.allowGithubWebHookPermission, -// strategy.allowCcTrayPermission, -// strategy.allowAnonymousReadPermission, -// ], -// ], -// ] -// break + case 'org.jenkinsci.plugins.GithubAuthorizationStrategy': + config = [ + setAuthorizationStrategy: [ + (className): [ + strategy.adminUserNames, + strategy.authenticatedUserReadPermission, + strategy.useRepositoryPermissions, + strategy.authenticatedUserCreateJobPermission, + strategy.organizationNames, + strategy.allowGithubWebHookPermission, + strategy.allowCcTrayPermission, + strategy.allowAnonymousReadPermission, + ], + ], + ] + break // constructor with no arguments // "Anyone can do anything" - case hudson.security.AuthorizationStrategy$Unsecured: + case 'hudson.security.AuthorizationStrategy$Unsecured': // "Legacy mode" - case hudson.security.LegacyAuthorizationStrategy: + case 'hudson.security.LegacyAuthorizationStrategy': // "Logged-in users can do anything" - case hudson.security.FullControlOnceLoggedInAuthorizationStrategy: + case 'hudson.security.FullControlOnceLoggedInAuthorizationStrategy': // "Matrix-based security" - case hudson.security.GlobalMatrixAuthorizationStrategy: + case 'hudson.security.GlobalMatrixAuthorizationStrategy': // technically, you can select this class but it will "brick" the // authorization strategy without additional method calls to configure // the matrix which are not presently supported // "Project-based Matrix Authorization Strategy" - case hudson.security.ProjectMatrixAuthorizationStrategy: + case 'hudson.security.ProjectMatrixAuthorizationStrategy': // same issue as hudson.security.GlobalMatrixAuthorizationStrategy default: config = [ setAuthorizationStrategy: [ - (strategy.getClass().getName()): [], + (className): [], ], ] }