突然發現博客又扔了好幾年了,今天想起來就記錄點問題。
使用Shiro框架來進行權限驗證,想要登錄后跳轉回之前的鏈接。需要使用Shiro的SavedRequest。
當跳轉到登錄頁面時,Shiro會調用WebUtils中的saveRequest方法,將當前的SavedRequest進行儲存。當登錄成功之后,通過getSavedRequest取得之前得數據。以下為具體實現:
// 參數 HttpServletRequest request
Subject user = SecurityUtils.getSubject();
try {
user.login(token);
} catch (IncorrectCredentialsException e) {
......
}
SavedRequest savedRequest = WebUtils.getSavedRequest(request);
// 登錄前url
savedRequest.getRequestUrl();
// 取得url之后對SavedRequest進行清空
// 如果未使用接口方式,可以直接跳轉url並清空,使用WebUtils中的redirectToSavedRequest方法
WebUtils.getAndClearSavedRequest(request);
