Я написал несколько веб-сервисов отдыха с помощью dropwizard. Затем я использовал dropwizard-shiro bundle для защиты своих ресурсов, о которых я рассказал в вопросе this. Я также использовал пользовательский интерфейс swagger для проверки моих ресурсов. Все отлично работало в пользовательском интерфейсе swagger. Я написал веб-приложение php, которое использует эти службы. В php-приложении есть страница входа в систему, которая вызывает мою службу входа. Вход в систему успешно, но при попытке доступа к некоторым другим ресурсам через приложение php он дает ошибку Unauthorized Access. Почему я получаю эту ошибку? Это из-за истечения срока действия созданного сеанса?Dropwizard-Shiro: несанкционированный доступ даже после входа в систему
0
A
ответ
0
У меня была такая же проблема: isAuthenticated() возвращает false после того, как я вошел в систему и попытался получить доступ к некоторым другим ресурсам jax-rs. В моем сценарии это клиент ReactJS с AXIOS, который выполняет запрос.
Как я установил его (это было Frontend, что был неправ): я видел, что я не делал XMLHttpRequest с AXIOS, потому что на ChromeConsole я мог видеть, что печенье не было отправлено CROSS-ORIGIN к серверу (HTTP-заголовок: Set-Cookie, печенье и так далее)
Тогда я сделал это с $ .ajax
xhrFields: {
withCredentials: true
},
и все в порядке. Сиро вытаскивает Jsessionid из HTTP-only-cookie. И не было четкого сообщения об ошибке, почему он не работал. Надеюсь, я кое-что вам помогу :-)