zk-grails и интеграция безопасности весны - PullRequest
0 голосов
/ 12 января 2019

У меня есть приложение в Grails 2.3.11 с плагином zk-grails. когда я выполняю интеграцию Spring Security Core для аутентификации, страницы zul перестают отвечать, выдавая следующую ошибку: «Сервер временно не работает» Вы хотели бы попробовать еще раз? (Неожиданный токен <(SyntaxError)) "</p>

1 Ответ

0 голосов
/ 22 января 2019

Похоже, ваша конфигурация безопасности перехватывает сервлет Ajax, сопоставленный с / zkau (независимо от grails).

Клиентский движок ZK ожидает, что ajax-запросы ответят в формате, подобном JSON, а не перенаправлением на страницу входа (обычно это html). Следовательно, неожиданный токен '<' - html-страницы обычно начинаются с '<', синтаксический анализ ответа просто не выполняется из-за неправильного формата. </p>

Ваш следующий вопрос может быть ... почему клиентский движок ZK не обнаруживает перенаправления в ответах ajax? -> Просто потому, что не может. Уже обсуждалось несколько раз (например, здесь или там )

Запрос функции для поддержки API современных браузеров уже опубликован для будущей версии -> ZK-4175 и для улучшения сообщений об ошибках ZK-4199 .

Итак, на данный момент у вас есть несколько вариантов:

  1. для неавторизованных запросов AJAX в / zkau вместо этого ответьте 401 (неавторизованным) перенаправления 302 и настройки на стороне клиента код ошибки + перезарядить-URI
  2. вместо 401 вы можете вернуть JSON-ответ, который понимает клиентский движок ZK например.: { "RS": [[ "перенаправляют", [ "https://yourssoserver.com/login.jsp",""]]],"rid":1}

  3. в качестве крайней меры настройте обработку ошибок синтаксического анализатора на стороне клиента ZK, как обсуждалось на форумах zk . и реализуйте свою собственную логику для обработки определенных не JSON-ответов.

ОБНОВЛЕНИЕ: ZK-4199 был реализован и будет включен в версию 8.6.2 ZK (с более значимым сообщением об ошибке)

...