2015-01-12 131 views
0

我剛剛實施了CCNet安全性,並且可以通過WebDashboard登錄。CCNet安全例外

問題是,當我嘗試強制構建時,出現以下異常。

異常消息

請求處理失敗的遠程服務器上:權限來執行「ViewProject」已被拒絕。

Exception Full Details 
ThoughtWorks.CruiseControl.Remote.CommunicationsException: Request processing has failed on the remote server: 
Permission to execute 'ViewProject' has been denied. 
    at ThoughtWorks.CruiseControl.Remote.CruiseServerClient.ValidateResponse(Response response) 
    at ThoughtWorks.CruiseControl.Remote.CruiseServerClient.ListBuildParameters(String projectName) 
    at ThoughtWorks.CruiseControl.WebDashboard.ServerConnection.ServerAggregatingCruiseManagerWrapper.ListBuildParameters(IProjectSpecifier projectSpecifier, String sessionToken) 
    at ThoughtWorks.CruiseControl.WebDashboard.Dashboard.ProjectParametersAction.Execute(ICruiseRequest cruiseRequest) 
    at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest request) 
    at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest request) 

我的安全配置是這樣的:

服務器安全

<internalSecurity> 
<cache type="inMemoryCache" duration="10" mode="sliding"/> 

<audit> 
<xmlFileAudit location="C:\CCNet\CCNet_Audit.xml"/> 
</audit> 
<auditReader type="xmlFileAuditReader" location="C:\CCNet\CCNet_Audit.xml"/> 

<users> 
<ldapUser name="*" domain="company_domain" /> 
</users> 

<permissions> 
<rolePermission name="admin" forceBuild="Allow" sendMessage="Allow" startProject="Allow" changeProject="Allow" viewSecurity="Allow" modifySecurity="Allow" viewProject="Allow" viewConfiguration="Allow" defaultRight="Inherit"> 
<users> 
<userName name="PROD_ADMINS" /> <!--AD User Group --> 
</users> 
</rolePermission> 
</permissions> 
</internalSecurity> 

項目安全

<security type="defaultProjectSecurity"> 
<permissions> 
<rolePermission name="admin" ref="admin"/> 
</permissions> 
</security> 

審計LO gs從AD正確捕獲我的名字,所以認證似乎工作正常。

不知道發生了什麼問題..我已經嘗試了文檔中提到的所有內容,但它不起作用! 任何幫助,將不勝感激。

問候
Ujj​​wal

回答

0

我想你忘了設置defaultRight defaultRight = 「拒絕」 或 defaultRight = 「允許」

在這裏看到的文檔 http://www.cruisecontrolnet.org/projects/ccnet/wiki/Role_Permission

外觀在維基的完整例子 http://www.cruisecontrolnet.org/projects/ccnet/wiki/Scenario_1_Small_In-house_Development_Team 這給出了更多的信息:-)

+0

我使用defaultRight = 「繼承」,這是有效的選項之一。我也嘗試過「允許&」拒絕「,並且有同樣的問題。不知道爲什麼它不能識別屬於APP_ADMINS組的我...... – ujjwalesri

0

好的......它終於奏效了!

方法如下:

的配置,不同的是CCNET 不支持AD組但正確的!
一旦我用AD標識的實際用戶ID替換<userName name="PROD_ADMINS" />,它就像一個魅力! :)

查看編輯2評論this博客的更多細節。

問候
Ujj​​wal