2015-07-23 3 views
4

Я знаю, что могу дать разрешения наКак предоставить пользователям права доступа программно?

${host}:4502/useradmin 

, когда я дважды щелкните логин пользователя и перейдите на вкладку Permissions

Я хочу дать разрешения, когда я раскрываю пакет контента.

Возможно ли это?

ответ

3

Я добавил в папке, где я хочу, чтобы настроить права доступа к файлу с именем

_rep_policy.xml 

с содержанием, как это:

<?xml version="1.0" encoding="UTF-8"?> 

<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal" 
      jcr:primaryType="rep:ACL"> 
    <allow 
      jcr:primaryType="rep:GrantACE" 
      rep:principalName="myusername" 
      rep:privileges="{Name}[jcr:read,rep:write,jcr:versionManagement,jcr:lockManagement]"/> 
</jcr:root> 

и в pom.xml я добавил следующие записи:

<profiles> 
     <profile> 
      <id>autoInstallContentPackage</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>com.day.jcr.vault</groupId> 
         <artifactId>content-package-maven-plugin</artifactId> 
         <executions> 
          <execution> 
           <id>install-package</id> 
           <goals> 
            <goal>install</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          ... 
          <properties> 
           <acHandling>Overwrite</acHandling> //allow modify permissions 
          </properties> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
     .... 
5

Когда вы даете разрешение пользователю на определенный узел/путь, он в основном сохраняет разрешение на уровне узла ниже узла политики rep: разрешить/запретить.

Я хочу предоставить разрешения при развертывании пакета содержимого.

  • можно развернуть пакет AEM, содержащий только репутацию: политику, которая будет служить той же цели создания разрешений через UserAdmin.

Вы можете обратиться к ACL packager from ACS Tools для упаковки списков ACL.

Примечание: Пользователь, который устанавливает пакет должен иметь разрешение на создание списков управления доступом

программно задать списки контроля доступа (как название вашего вопроса говорит), вы могли бы заботиться, чтобы проверить несколько Jackrabbit/Интерфейсы/классы JCR.

org.apache.jackrabbit.api.security.JackrabbitAccessControlManager 
org.apache.jackrabbit.api.security.JackrabbitAccessControlList 
javax.jcr.security.Privilege 
+0

Действительно, вы можете посмотреть в session.getAccessControlManager(). GetPolicies (...) – Federico

2

Вы можете использовать команду curl для установки разрешений. AEM OOB обеспечивают Curl сценарии: 1. Создать/удалить группы 2. Создание/удаление пользователей 3. Добавление групп/пользователей в группах 4. Добавление разрешений в группе

один пример назначения разрешений с помощью завиток:

curl -u admin:admin -X POST --noproxy localhost -FauthorizableId=MyGroup -Fchangelog=path:/content/site/page/path,read:true,modify:true,create:true,delete:true,acl_read:false,acl_edit:false,replicate:false http://localhost:4502/.cqactions.html 

Это может быть автоматизировано с использованием скрипта легко (файл bat или скрипт оболочки или какая-либо java-программа).

+0

Отличный ответ, и я хотел бы выделить часть AEM OOB. Для всех привилегий @ jcr: для чтения примеров требуется набор для подключения к jabrabbit-accessmanager. – Federico

Смежные вопросы