Я пытаюсь запустить сервер Micronaut, который должен выполнять аутентификацию на основе сеанса.Я использую инструкции, предоставленные в
https://guides.micronaut.io/micronaut-security-session/guide/index.html
На основании этих инструкций я использую следующую информацию в файле application.yaml:
micronaut:
security:
enabled: true
endpoints:
login:
enabled: true
logout:
enabled: true
session:
enabled: true
login-success-target-url: /
login-failure-target-url: /login/authFailed
IЯ также использую правильную версию Micronaut (v1.1.0.M1), как указано в инструкциях.
Я запускаю сервер Micronaut и получаю следующие ошибки:
22:07:58.212 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: while parsing a block mapping
in 'reader', line 3, column 6:
enabled: true
^
expected <block end>, but found '<block mapping start>'
in 'reader', line 7, column 7:
logout:
^
org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping
in 'reader', line 3, column 6:
enabled: true
^
expected <block end>, but found '<block mapping start>'
in 'reader', line 7, column 7:
logout:
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:572)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:214)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:144)
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:236)
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:227)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:215)
...
(Lines omitted for brevity)
Есть личего-то здесь не хватает?Это точные строки, указанные в инструкции!Я использую код для примера входа в сеанс, описанного в Руководстве!
ОБНОВЛЕНИЕ:
Я использовал приложение для проверки, предложенное Джеймсом:
https://codebeautify.org/yaml-validator
чтобы исправить проблемы с форматированием, которые он упоминал в application.yaml.Судя по всему, парсеры YAML немного чувствительны к символам табуляции и пробелам в объявлениях YAML.При повторном наборе частей файла YAML был получен следующий файл:
micronaut:
security:
enabled: true
endpoints:
login:
enabled: true
logout:
enabled: true
session:
enabled: true
login-success-target-url: /
login-failure-target-url: /login/authFailed
Обратите внимание на изменения в интервале, необходимые для обеспечения допустимости содержимого.
После исправления проблем с форматированием я теперьиметь «действительный» YAML-файл, который при запуске Micronaut теперь генерирует следующие ошибки:
10:06:56.253 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: mapping values are not allowed here
in 'reader', line 11, column 37:
login-success-target-url: /
^
org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here
in 'reader', line 11, column 37:
login-success-target-url: /
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:870)
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:358)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558)
...
(Lines omitted for brevity)
Это показывает следующее:
То, что есть вкак минимум одна ошибка в руководстве приведена для настройки сеанса входа в систему для микросервиса Micronaut, поскольку весь файл YAML является построчным, как и тот, который описан в руководстве!Код, описанный в руководстве, просто не может работать из-за этих ошибок синтаксического анализа в файле YAML!
Что на информацию, находящуюся в настоящее время в этом руководстве, нельзя полагаться на точность, и что необходимо внести исправлениячтобы сделать его для того, чтобы заставить его код работать должным образом.
Это вообще, даже игнорируя факт, что quide предоставил неверную информацию о конфигурациях URL входа в систему, используя YAML для настройкимикросервис чрезвычайно подвержен ошибкам (из-за легкости, с которой можно делать ошибки форматирования) и, вероятно, не является наиболее практичным форматом для настройки микросервиса (или чего-либо еще, в этом отношении).
Может ли кто-нибудь предоставить правильный синтаксис конфигурации для этих URL-адресов входа в систему и входа в систему или других правильных строк конфигурации, которые сообщат микросервису, куда следует перейти в случае успешного входа в систему при сбое?Или (желательно) может кто-нибудь привести пример службы входа в систему на основе сеансов микронавтов, которая на самом деле работает ???