shiro无权限时,会强制退出登录,怎么解决?

bruce1122 发布于 01/15 09:39
阅读 324
收藏 0

在做shiro的权限管理时,给配置了某个操作权限,比如当前用户不能删除,当我单击删除按钮时,给出了没有权限的提示,并且还退出了登录。

现在只想给出提示就好了,不用退出登录。

在这里对权限的异常做了统一处理。

@ExceptionHandler({AuthorizationException.class,UnauthorizedException.class})
public Result handleAuthorizationException(AuthorizationException e){
    log.error(e.getMessage(),e);
    return Result.exception(ErrorEnum.NO_AUTH);
}

求大佬解决!

 

加载中
0
Lain_Lain
Lain_Lain

前后端分离就没有这个烦恼

bruce1122
bruce1122
回复 @Lain_Lain : 我看了下前端,权限不通过没有,跳转到登录的路由。
Lain_Lain
Lain_Lain
回复 @bruce1122 : 我的理解是,权限与授权是后端的操作,缓存权限与退出登录是前端的操作,前后端分离的话这两者应该是不会联系在一起的。对于你这个问题,如果想只给出提示,不退出登录,那就把退出登录的路由删掉就好了。
bruce1122
bruce1122
我现在就是前后分离呀。而且如果在同一异常处理这里,返回的其他提示信息,就不会退出,只有权限信息才会退出。
0
bruce1122
bruce1122
NO_AUTH(403,"没有权限,请联系管理员"),

返回信息有一个code码和msg消息,如果改了code码403就不会被强制退出登录。

0
天天微笑灬
天天微笑灬

这个应该是前端问题,你看看你们前端response有没有拦截器

bruce1122
bruce1122
是的,前端做了响应拦截。
0
bruce1122
bruce1122
/**
 * 响应拦截
 */
http.interceptors.response.use(response => {
  if (response.data && response.data.code === 403) { // 401 token失效
    clearLoginInfo()
    router.push({ name: 'login' })
  }
  return response
}, error => {
  return Promise.reject(error)
})

前端做了响应拦截

0
westboy
westboy
你过滤器是什么逻辑?
bruce1122
bruce1122
已解决,谢谢
0
e
enboyd

前端按权限限制就好, 要么不显示删除按钮,要么点击的时候提示权限不足

bruce1122
bruce1122
已解决谢谢
0
河马史诗

把shiro卸载掉就好了啊

bruce1122
bruce1122
咋卸载呢,需要用360嘛
冬天的鸟
冬天的鸟
你可真是个人才,shiro卸载了,把你丢上去
返回顶部
顶部