Код входа в сеанс Micronaut не запускается при запуске - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь запустить сервер 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)

Это показывает следующее:

  1. То, что есть вкак минимум одна ошибка в руководстве приведена для настройки сеанса входа в систему для микросервиса Micronaut, поскольку весь файл YAML является построчным, как и тот, который описан в руководстве!Код, описанный в руководстве, просто не может работать из-за этих ошибок синтаксического анализа в файле YAML!

  2. Что на информацию, находящуюся в настоящее время в этом руководстве, нельзя полагаться на точность, и что необходимо внести исправлениячтобы сделать его для того, чтобы заставить его код работать должным образом.

  3. Это вообще, даже игнорируя факт, что quide предоставил неверную информацию о конфигурациях URL входа в систему, используя YAML для настройкимикросервис чрезвычайно подвержен ошибкам (из-за легкости, с которой можно делать ошибки форматирования) и, вероятно, не является наиболее практичным форматом для настройки микросервиса (или чего-либо еще, в этом отношении).

Может ли кто-нибудь предоставить правильный синтаксис конфигурации для этих URL-адресов входа в систему и входа в систему или других правильных строк конфигурации, которые сообщат микросервису, куда следует перейти в случае успешного входа в систему при сбое?Или (желательно) может кто-нибудь привести пример службы входа в систему на основе сеансов микронавтов, которая на самом деле работает ???

1 Ответ

0 голосов
/ 26 февраля 2019

Ваш файл yaml отформатирован неправильно.Вы можете использовать онлайн-валидатор, чтобы мгновенно получать отзывы о любых ошибках.Например https://codebeautify.org/yaml-validator

...