2013-06-05 1 views
0

Теперь я использую Shiro, интегрированный с Spring для защиты моего проекта. Отфильтруйте запрос в основном по ролям. Теперь я встречаюсь с проблемой. Например, после того, как я вошел в систему через некоторое время, сеанс отсутствует, и в это время, когда я нажимаю несколько кнопок, которые отправляют запрос на бэкэнд, запрос определенно перехвачен сиро из-за моего сеанса. Вот где проблема существует. Несмотря на то, Shiro дает выбор вы можете сконфигурировать некоторые вещи, какКак получить статус HTTP из ответа, полученного с помощью автоматической аутентификации

<property name="unauthorizedUrl" value="/unauthorized.jsp"/> 

присвоить URL, если запрос является несанкционированным. Я думаю, что ответ shiro возвратил должен включать status.Unauthorized или ошибку 401. То, что я хочу сделать, связано с этой ошибкой в ​​каждом запросе ajax. Но я не знаю, проверить статус в методе обратного вызова ajax. Кто-нибудь может дать совет? Благодаря

ответ

0

Вы можете добавить метод, как это к вашему SecurityFilters:

def onNotAuthenticated(subject, filter) { 
    def redirectToLoginPage = true 
    if (filter.request.xhr) { 
     filter.response.sendError 403 
     redirectToLoginPage = false 
    } 
    redirectToLoginPage 
}