使用Shiro框架,登录后返回跳转前页面

  突然发现博客又扔了好几年了,今天想起来就记录点问题。

  使用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);

  

posted @ 2020-03-24 10:04  tearfc  阅读(2348)  评论(0编辑  收藏  举报