shiro无权限访问时unauthorizedUrl不起作用
shiro无权限访问时unauthorizedUrl不起作用
Zero零_度 发表于2年前
shiro无权限访问时unauthorizedUrl不起作用
  • 发表于 2年前
  • 阅读 305
  • 收藏 0
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

/**
     * 读ShiroFilterFactoryBean源码可知,只有满足一下条件没有权限访问的时候才会跳转到配置的unauthorizedUrl页面
     * if (StringUtils.hasText(unauthorizedUrl) && (filter instanceof AuthorizationFilter)) {
     * 由于此处是认证过滤器,非授权过滤器,所以,访问没有权限时,页面会直接报错,很不友好,解决办法:加入spring异常处理
     * @return
     */
    @RequiresPermissions("/user/list.do")
    @RequestMapping("/list.do")
    public String userList() {
        return "user/list";
    }

异常处理配置:

package com.sniper.shiro.security.web.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

/**
 * 异常统一处理,捕获异常,跳转到对应视图
 * @author sniper
 *
 */
public class ShiroExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex) {
        if(ex instanceof UnauthorizedException) {
            return new ModelAndView("redirect:/refuse.jsp");  
        }
        return new ModelAndView("redirect:/exception.jsp");
    }

}

springmvc.xml

<bean id="exceptionResolver" class="com.sniper.shiro.security.web.interceptor.ShiroExceptionResolver"/>


共有 人打赏支持
粉丝 64
博文 728
码字总数 241581
×
Zero零_度
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: