Я изучаю JASPIC, я начинаю небольшой проект с нуля, чтобы исследовать его и как он ведет себя на Wildfly. Первый шаг - вызвать мой метод SAM validateRequest
и вернуть содержимое незащищенного ресурса, страницу index.html
. Ок, validateRequest
вызывается. Я проверяю, установлено ли MessageInfo
javax.security.auth.message.MessagePolicy.isMandatory
значение false
. Вот тяжелые времена. В моей первой попытке, если для свойства установлено значение false validateRequest
возвращает AUTH_SUCCESS
значение, но браузер возвращает 403
. В моей второй попытке validateRequest
возвращает null
, браузер возвращается 200
, но в нем нет данных в ответе (ничего о index.html
). Что делать, чтобы правильно обрабатывать запросы сервлета? Вы можете найти источник here. Благодарю.Jaspic: обрабатывать доступ к незащищенному ресурсу
ответ
Что делать, чтобы правильно обрабатывать запросы сервлета?
Понимать и придерживаться соответствующих разделов specification. Для типичных сервлет-ориентированные ServerAuthModule
(SAM), те:
- Общий обзор модели обработки на стороне сервера сообщения (точка 2, где
validateRequest
вызывается), при условии, согласно § 1.2.5 и § 2.1 .5.2. Более поздняя, а также диаграмма состояний модели на стр. 25 (стр. 39 в PDF) имеют особое значение. - Специализация профиля контейнера HTTP сервлета, приведенная в § 3.8.3.2, § 3.8.4 и § 3.9.
Конечно, с тех пор, как вы внедряете заводы, существует немало дополнительных подробностей различного значения, о которых вы должны знать, поэтому вам, скорее всего, будет труднее уйти, чтобы избежать чтения первого три главы в целом.
Возвращение SUCCESS
из validateRequest
Всякий раз, когда validateRequest
реализация вашего SAM является возвращение AuthStatus.SUCCESS
(null
является не опция), он должен общаться личность звонившего к (Servlet) выполнения предварительного к возврату, независимо от того, действительно ли вызывающий абонент был аутентифицирован или анонимен. Это может быть достигнуто путем обработки CallerPrincipalCallback
и/или по меньшей мере одного GroupPrincipalCallback
(можно назначить группы анонимному вызывающему абоненту) с помощью предоставленного времени выполнения CallbackHandler
. Построение любого из этих обратных вызовов с помощью аргумента null Principal
(имя) для среды выполнения означает, что вызывающий абонент должен считаться анонимным или что к нему не должны быть связаны никакие группы. Опять же, обратите внимание, что стандартное допущение анонимного вызывающего абонента не выполняется с помощью совместимой среды исполнения; это должно быть указано явно, иначе результат не определен.
Семантика SUCCESS
является то, что запрос должен иметь возможность распространяться на (Servlet основе) службы конечной точки, тогда и только тогда группы- (ролевые) авторизации вызывающего абонента на основе успешно. Однако для авторизации время выполнения должно быть информировано о личности вызывающего абонента, поэтому требуемые обратные вызовы необходимы.
AuthStatus
значения против HTTP Response Коды состояния
Отношения между ними может быть немного запутанным. Первые - это нейтральные по протоколу и, по существу, метки перехода состояния в модели обработки сообщений. В теории они ограничивают более поздние; на практике, так как многие компоненты и сам сервер приложений могут изменять статус ответа, рекомендуется назначить его самостоятельно, если вы не используете AuthStatus.SUCCESS
/AuthStatus.SEND_SUCCESS
validateRequest
/secureResponse
возвратные случаи.
- 1. Jaspic: обрабатывать доступ к защищенному ресурсу
- 2. Доступ к ресурсу Mule
- 3. Доступ к ресурсу изнутри jar
- 4. Доступ к ресурсу в WPF
- 5. Доступ к ресурсу «R.string» переменно
- 6. Доступ к ресурсу Query 0
- 7. Доступ дроссельной заслонки к ресурсу
- 8. Доступ к ресурсу доступа к реестру Modx
- 9. Доступ к ресурсу Java как к файлу
- 10. Clojure асинхронный доступ к общему ресурсу
- 11. Почему доступ к ресурсу медленнее, чем доступ к члену
- 12. Доступ к ресурсу из задания сервера sql
- 13. Доступ к ресурсу строки доступа по ключу
- 14. pthreads доступ к ресурсу глобально в PHP
- 15. Доступ к ресурсу из общей библиотеки jar
- 16. Доступ к следующему ресурсу от UIImagePickerController
- 17. iPhone, доступ к одному ресурсу двумя потоками
- 18. Доступ к ресурсу статического ресурса из xaml?
- 19. Доступ к ресурсу в вызывающей сборке
- 20. Как получить доступ к ресурсу sharepoint SPNavigationNode.QuickLaunch?
- 21. Доступ к ресурсу внутри нагрузки/дамп
- 22. Rails: как параметризовать доступ к ресурсу RESTful?
- 23. Как получить доступ к файловому ресурсу программно
- 24. Доступ к внешнему ресурсу в Appery.io
- 25. Запретить удаленный доступ к ресурсу ASP.net
- 26. Доступ к внутреннему ресурсу из внешнего ip
- 27. Доступ к ресурсу строки из подкласса
- 28. Доступ к глобальному ресурсу из cshtml
- 29. Доступ к AFP-ресурсу с iPhone?
- 30. Угловая: доступ к ресурсу в контроллере
Вы пытались сначала обработать 'новый CallerPrincipalCallback (clientSubject, null)', а затем вернуть 'AuthStatus.SUCCESS'? Это * должно * в соответствии с спецификацией (если ваша версия WildFly правильно ее реализует). – Uux
Вы правы. Пожалуйста, верните свой комментарий в ответ, чтобы я мог его принять. – Francesco