为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 实战课程->电商后台->动...

实战课程->电商后台->动态代理实现权限拦截

2017.10.03 14:56 1437浏览
package com.mmall.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import com.mmall.common.ResponseCode;
import com.mmall.common.ServerResponse;
import com.mmall.pojo.User;
import com.mmall.service.IUserService;
public class AuthorityProxy implements InvocationHandler {
    private Object target;
    private Object obj;
    private IUserService iUserService;
    public AuthorityProxy(Object obj, IUserService iUserService) {
        this.obj = obj;
        this.iUserService = iUserService;
    }
    public Object bind(Object target) {
        this.target = target;
        return Proxy.newProxyInstance(target.getClass().getClassLoader(),
                target.getClass().getInterfaces(), this);
    }
    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        if (obj instanceof User) {
            if (iUserService.checkAdminRole((User) obj).isSuccess()) {
                return method.invoke(target, args);
            }
            return ServerResponse.createByErrorMessage("无权限操作");
        }
        return ServerResponse.createByErrorCodeMessage(
                ResponseCode.NEED_LOGIN.getCode(), "用户未登录,请登录管理员");
    }
}
点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
56
获赞与收藏
363

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

151篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消