安全框架Shiro获取登录前的URI URL

Shiro会将登录前的一些信息放入到Session中:

Session对象信息

{"attributeKeys":["org.apache.shiro.web.session.HttpServletSession.HOST_SESSION_KEY","shiroSavedRequest"],"host":"127.0.0.1","id":"1i7u0d0p89i5sarhztd3zs7v0","lastAccessTime":1400401925146,"startTimestamp":1400401925146,"timeout":1800000}


所以我们可以通过属性:shiroSavedRequest   来获取我们登录前的URL 

具体的SavedRequest对象是:

{"method":"GET","requestURI":"/main/user/test.do","requestUrl":"/main/user/test.do"}


里面包含了这些信息

所以我们的代码可以这么写:

SavedRequest savedRequest = (SavedRequest)SecurityUtils.getSubject().getSession().getAttribute("shiroSavedRequest");
model.addAttribute("message", "returnUrl:" + savedRequest.getRequestUrl());

希望对你有帮助。

你可能感兴趣的:(Shiro)