2014-10-16 2 views
1

При выдаче следующей команды на jboss-cli.bat (пакетный файл MS-DOS для окон) для создания сфера безопасности на WildFly 8.1.0 окончательного, как указано в this migration guide,Создание области безопасности в WildFly 8.1.0 - Формат пути узла неправилен вокруг «x» при выдаче команды для создания области

./subsystem=security/security-domain=app:add(cache-type="default") 
    cd ./subsystem=security/security-domain=app 
    ./authentication=classic:add(
     login-modules=[ { 
     code="Database", 
     flag="required", 
     module-options={ 
      dsJndiName="java:/jdbc/project_datasource", 
      principalsQuery="SELECT password FROM user_role_table WHERE user_id=?", 
      rolesQuery="SELECT group_id, 'Roles' 
         FROM group_table gt INNER JOIN user_role_table urt ON gt.user_group_id = urt.user_id 
         WHERE urt.user_id=?", hashAlgorithm="SHA-256", 
      hashEncoding="BASE64", 
      unauthenticatedIdentity="guest" 
     } 
     }, { 
     code="RoleMapping", 
     flag="required", 
     module-options={ 
      rolesProperties="file:${jboss.server.config.dir}/app.properties", 
      replaceRole="false" 
     } 
     } 
    ]) 

Я получаю следующую ошибку интерфейса командной строки запроса:

формат путь Node является неправильным вокруг «CD». (индекс 67)

Если cd удален, то сообщается о следующей ошибке.

Не удалось выполнить чтение-OPRATION-описание для подтверждения запроса: java.util.concurrent.ExecutionException: Операция не

Команда дается в непрерывном текстовом формате следующим образом.

./subsystem=security/security-domain=app:add(cache-type="default") cd ./subsystem=security/security-domain=app ./authentication=classic:add(login-modules=[ {code="Database",flag="required",module-options={dsJndiName="java:/jdbc/project_datasource",principalsQuery="SELECT password FROM user_role_table WHERE user_id=?",rolesQuery="SELECT group_id, 'Roles' FROM group_table gt INNER JOIN user_role_table urt ON gt.user_group_id = urt.user_id WHERE urt.user_id=?",hashAlgorithm="SHA-256",hashEncoding="BASE64",unauthenticatedIdentity="guest"}},{code="RoleMapping",flag="required",module-options={rolesProperties="file:${jboss.server.config.dir} /app.properties",replaceRole="false"}}]) 

Какое исправление? Я просто не хочу копировать/передавать XML в файл конфигурации, поскольку он может отличаться от версии к версии.

ответ

2

Проблема заключается в объединении большего количества команд на одной линии.

Простым решением для вас является использование внешнего файла для хранения команд CLI.

E.g. создать security-domain.cli файл в wildfly-8.1.0.Final/bin папку со следующим содержанием (если вы хотите, чтобы разделить команду на несколько строк, поставить обратную косую черту в качестве последнего символа):.

/subsystem=security/security-domain=app:add(cache-type="default") 
/subsystem=security/security-domain=app/authentication=classic:add() 
/subsystem=security/security-domain=app/authentication=classic/login-module=Database:add(\ 
    code="Database", \ 
    flag="required", \ 
    module-options=[ \ 
     ("dsJndiName"=>"java:/jdbc/project_datasource"), \ 
     ("principalsQuery"=>"SELECT password FROM user_role_table WHERE user_id=?"), \ 
     ("rolesQuery"=>"SELECT group_id, 'Roles' FROM group_table gt INNER JOIN user_role_table urt ON gt.user_group_id = urt.user_id WHERE urt.user_id=?"), \ 
     ("hashAlgorithm"=>"SHA-256"), \ 
     ("hashEncoding"=>"BASE64"), \ 
     ("unauthenticatedIdentity"=>"guest") \ 
    ]) 
/subsystem=security/security-domain=app/authentication=classic/login-module=RoleMapping:add(\ 
    code="RoleMapping", \ 
    flag="required", \ 
    module-options=[ \ 
     ("rolesProperties"=>"file:${jboss.server.config.dir}/app.properties"), \ 
     ("replaceRole"=>"false") \ 
    ]) 

(Ваш образец содержит старый стиль настройки входа модулей Это не рекомендуется . способ в настоящее время, так что пример использования нового пути)

Запустите новый файл с инструментом JBoss CLI:

jboss-cli.bat -c --file=security-domain.cli 
+0

Спасибо. Эта команда 'jboss-cli.bat -c -file = security-domain.cli' не запускается в приглашении' jboss-cli.bat' после создания файла 'security-domain.cli' в' wildfly-8.1 .0.Final/bin папка'. Является ли JBoss CLI инструментом, который должен быть установлен отдельно? – Tiny

+0

Инструмент CLI JBoss - это то, что вы начинаете с 'jboss-cli.bat'. – kwart

+0

Вам не нужно запускать его в интерактивном режиме. Просто запустите данную команду из стандартной командной строки Windows (например, cmd.exe). Аргумент '-c' автоматически соединяется с WildFly, а' --file = 'устанавливает путь к файлу с командами для запуска. – kwart

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

  • Нет связанных вопросов^_^