我正在通过groovy在jenkins中配置active-directory插件,如下所示:
import jenkins.model.*
import hudson.security.*
import hudson.plugins.active_directory.*
def instance = Jenkins.getInstance()
String domain = "MY-DOMAIN.DE"
String site = ""
String server = "my-server:3268"
String bindName = ""
String bindPassword = ""
adrealm = new ActiveDirectorySecurityRealm(domain, site, bindName, bindPassword, server, GroupLookupStrategy.RECURSIVE)
instance.setSecurityRealm(adrealm)
有效。但是“域控制器”没有设置。
我希望,“服务器”会设置它,但不是。 如何通过groovy脚本设置它?
答案 0 :(得分:2)
构造函数的向后兼容性失败,请使用最新的构造函数(更多https://issues.jenkins-ci.org/browse/JENKINS-39676):
@DataBoundConstructor
// as Java signature, this binding doesn't make sense, so please don't use this constructor
public ActiveDirectorySecurityRealm(String domain, List<ActiveDirectoryDomain> domains, String site, String bindName,
String bindPassword, String server, GroupLookupStrategy groupLookupStrategy, boolean removeIrrelevantGroups, Boolean customDomain, CacheConfiguration cache) {
示例:
import hudson.plugins.active_directory.*
import jenkins.model.*
def instance = Jenkins.getInstance();
def ActiveDirectoryDomain adDomain = new ActiveDirectoryDomain("Example_Domain_Name_2", "Example_Domain_Controller_2");
def domains = new ArrayList<ActiveDirectoryDomain>();
domains.add(adDomain);
def securityRealm = new ActiveDirectorySecurityRealm(
"",
domains,
"",
"",
"",
"",
GroupLookupStrategy.RECURSIVE,
false,
true,
null)
println(securityRealm.domains)
instance.setSecurityRealm(securityRealm)
instance.save()
适合我!