2015-01-12 6 views
0

Я только что внедрил CCNet-безопасность, и я могу войти в систему через WebDashboard.CCNet Security Exception

Проблема в том, что когда я пытаюсь принудительно построить сборку, я получаю следующее исключение.

Exception Сообщение

обработка запроса не удалось на удаленном сервере: Разрешение на выполнение «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> 

Project Security

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

Ревизия ло gs правильно записывает мое имя из AD, поэтому проверка подлинности работает нормально.

Не уверен, что происходит неправильно. Я пробовал все, что упоминалось в документах, но это не работает! Любая помощь будет оценена по достоинству.

С уважением
Ujjwal

ответ

0

Я предполагаю, что вы забыли установить defaultRight defaultRight = "Запретить" или defaultRight = "Разрешить"

смотрите здесь для документации http://www.cruisecontrolnet.org/projects/ccnet/wiki/Role_Permission

просмотровых в полном примере на wiki http://www.cruisecontrolnet.org/projects/ccnet/wiki/Scenario_1_Small_In-house_Development_Team это дает дополнительную информацию :-)

+0

Я использую defaultRight = "Наследовать", который является одним из допустимых вариантов. Я также пробовал использовать «Разрешить и« Отказывать »и иметь такую ​​же проблему. Не уверен, почему он не идентифицирует меня, принадлежащую к группе APP_ADMINS ... – ujjwalesri

0

ОК ... он, наконец, работал!

Вот как:

Конфигурационный был правильным, за исключением CCNET не поддерживает AD группы еще!
Как только я заменил <userName name="PROD_ADMINS" /> с фактическим идентификатором пользователя, идентифицированным AD, он работал как шарм! :)

Просмотреть EDIT 2 комментарий на this блог для получения более подробной информации.

С уважением
Ujjwal