如何使用Shiro实现不同用户登录成功后跳转到不同主页
2个回答
2016-11-25
展开全部
如果集成了spring mvc的话,可以手动创建一个login的controller 然后用SecurityUtils.getSubject()函数获取当前用户,用hasRole("[role_name]")或者hasPermission("[String_permission]")等函数判断具有什么权限,在返回时return不同的页面路径就好...
展开全部
重写登录成功后方法,extends org.apache.shiro.web.filter.authc.FormAuthenticationFilter
/**
* 重写登录成功后方法,根据情况跳转到不同的路径
*/
@SuppressWarnings("unchecked")
@Override
protected boolean onLoginSuccess(AuthenticationToken token,
Subject subject, ServletRequest request, ServletResponse response)
throws Exception {
// 判断有没有认证
List<String> roles = (List<String>) UserUtils.getSession().getAttribute("roles");
for (int r = 0; r < roles.size(); r++) {
if ("auth".equals(roles.get(r))) {
// 认证跳转到首页
WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true);
}
}
// 未认证跳转到认证页面
WebUtils.issueRedirect(request, response, "/aa", null, true);
return false;
}
/**
* 重写登录成功后方法,根据情况跳转到不同的路径
*/
@SuppressWarnings("unchecked")
@Override
protected boolean onLoginSuccess(AuthenticationToken token,
Subject subject, ServletRequest request, ServletResponse response)
throws Exception {
// 判断有没有认证
List<String> roles = (List<String>) UserUtils.getSession().getAttribute("roles");
for (int r = 0; r < roles.size(); r++) {
if ("auth".equals(roles.get(r))) {
// 认证跳转到首页
WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true);
}
}
// 未认证跳转到认证页面
WebUtils.issueRedirect(request, response, "/aa", null, true);
return false;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询