原创作者: lovefly_zero   阅读:1620次   评论:0条   更新时间:2011-05-26    

写在前面的话

以前有篇博客曾经介绍过Hudson的安全访问控制。但是该文章的缺陷在于注册的用户可以对所有的项目都拥有访问和构建等权限。然而,对于实际的项目管理构建这并不是很理想的方法,所以我们需要针对每个用户专门访问特定的工程。正因为如此,该文章将告诉你解决的办法。

前提:您已经拥有了初步的安全访问控制,如果没有,请参考Use Hudson之标准安全设置搭建一个安全环境。

首先,我们首先以管理员身份登陆Hudson,选择“系统管理”,您会看到在系统管理有一排功能项。如图。



 

 

选择“系统设置”,进入下一步。如图。找到“Enable security”,下图中我选择“ject-based Matrix Authorization Strategy ”模式,细心的朋友会很容易发现,这个界面跟Matrix-based security 模式下的界面完全一致。下面我添加了三个用户,其中“zah”是原来的管理员,jdoneefrank是为新增的项目用户。创建账户的方式也请参照Use Hudson之标准安全设置

注:这里我没有选择Job下的”Read”权限,这是因为一旦您选择了此项,您的所有用户都能查看Hudson下的所有工程,这也就完全失去了基于项目管理Job的意义。



 

 

 

接下来,我们针对构建任务进行测试,如下图我的Hudson中有如下两个构建。


 

在视图中点击其中一个任务进入,如下图。



 

然后点击“设置”进入Job的配置页,你会发现,跟创建该Job时不太一样,配置页出现了“Enable project-based security ”,勾选它并创建用户,如下图。

 

这里我把“frank”和管理员“zah”用户添加进来,然后保存。下一步,我使用“frank”用户进行登录,你会发现它只包含“account-aggregator”项目。如下图。



 
同样,我使用“jdonee”用户配置在“ch-hello-world-m2e”项目里,它也只会拥有该项目。如下图。


这样一来,您就能很好地基于项目来管理您的任务了。很简单吧,嘿嘿。

 

题外话:如果您想去除这些管理控制,那也很简单。管理员登录后,选择“系统配置”下的“系统设置”,找到“Enable security”,选择“Anyone can do anything ”模式,呵呵,我想你不会这么做吧。

 

参考文章:http://weblogs.java.net/blog/2008/09/02/hudson-project-based-matrix-security-out

 

评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics