当前位置: 首页 > news >正文

工商营业执照咨询电话24小时东莞百度网站排名优化

工商营业执照咨询电话24小时,东莞百度网站排名优化,做网站流量怎么赚钱吗,手机网站方案.doc一些权限方面的思考 背景说明自定义注解解析自定义注解 背景 鉴权可以通过切面做抽取 说明 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 自定义注解 自定义注解: Permission …

一些权限方面的思考

  • 背景
  • 说明
  • 自定义注解
  • 解析自定义注解

背景

鉴权可以通过切面做抽取

说明

都是一些伪代码, 不能直接使用, 提供一种思路.
都是一些伪代码, 不能直接使用, 提供一种思路.
都是一些伪代码, 不能直接使用, 提供一种思路.

自定义注解

自定义注解: Permission

@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Permission {Member.Role [] roles();Type type();enum Type {/*** 项目类型*/PROJECT,/*** 团队类型*/TEAM,/*** 系统管理类型*/SYSTEM}class Member {enum  Role {/*** 角色001*/ROLE_001,/*** 角色002*/ROLE_002}}
}

解析自定义注解

伪代码实现: PermissionAspect

@Aspect
@Component
// @DependsOn({"springContextUtil"})
@Order(2)
@Slf4j
public class PermissionAspect {@Pointcut("@annotation(Permission)")private void annotationPointCut() {}@Around("annotationPointCut()")public Object before(ProceedingJoinPoint joinPoint) throws Throwable {RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();if (!(requestAttributes instanceof ServletRequestAttributes)) {throw new ClassCastException();}ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;HttpServletRequest request = attributes.getRequest();Signature signature = joinPoint.getSignature();if (!(signature instanceof MethodSignature)) {throw new ClassCastException();}MethodSignature methodSignature = (MethodSignature) signature;Method method = methodSignature.getMethod();// 获取当前访问人信息UserContext.UserInfo userInfo = UserContext.getInstance().getCurrentUser();if (userInfo == null) {throw new Exception();}// 如实是SuperAdmin直接放行// TODOPermission annotation = method.getAnnotation(Permission.class);// 方法配置的角色Permission.Member.Role[] roles = annotation.roles();// 方法指定的类型Permission.Type type = annotation.type();// 核心校验逻辑permissionCheck(request, roles, type, userInfo);return joinPoint.proceed();}/*** 人员角色鉴权** @param request 请求* @param permittedRoles 配置的授权角色数组* @param type 配置的类型* @param userInfo 当前用户信息*/private void permissionCheck(HttpServletRequest request, Permission.Member.Role[] permittedRoles, Permission.Type type, UserContext.UserInfo userInfo) throws Exception {boolean hasPermission = false;// TODO 只需要校验
//        List<Role> roleList =  xxx.getMemberRole(uuid, spaceId);
//        hasPermission = CollectionUtil.containsAny(currentMemberRoles, Arrays.asList(permittedRoles));
//        if (!hasPermission) {
//            // "没有权限"
//            throw new Exception();
//        }}/*** // TODO 伪代码: 模拟用户上下文*/@Datastatic class UserContext {UserInfo currentUser;private UserContext(){}public static UserContext getInstance() {return null;}class UserInfo {}}
}
http://www.dinnco.com/news/11616.html

相关文章:

  • midasbuy充值官方网站下载seo是什么的缩写
  • 沧州企业网站优化现在最火的发帖平台
  • 杭州富阳网站建设全国十大跨境电商排名
  • 小型玩具企业网站建设初期阶段任务外链百科
  • 企业建设网站公司简介盘多多网盘资源库
  • 找建站公司电商网站设计
  • 陕西网站建站微信引流被加软件
  • 万户网络销售seo 首页
  • 我的网站织梦推广平台排名前十名
  • 做配音任务的网站快手推广网站
  • 北京大型网站建设seo专家招聘
  • 棋牌游戏网站模板44555pd永久四色端口
  • 信息服务平台网站名称品牌推广服务
  • 怎么看一个网站是由哪个网络公司做的seo快速排名网站优化
  • 个人网站可以做产品众筹吗seo网站优化流程
  • 固定ip做网站路由设置谷歌seo是什么职业
  • 网站关键字优化软件制作一个网站大概需要多少钱
  • 免费企业网站建设免费泉州百度推广咨询
  • 二维码生成器工具苏州整站优化
  • 网站挂到国外服务器地址俄罗斯搜索引擎浏览器
  • 在建设官网的公司做运营seo和点击付费的区别
  • 泰州做企业网站的哪里好广州各区风险区域最新动态
  • 机场网站建设网站内容优化关键词布局
  • 2在线做网站营销渠道
  • 海南建设培训网站免费网站 推广网站
  • 做网站页面的框架seo新手教程
  • 相关网站查询长春网站关键词推广
  • 某购物网站建设方案百度搜索关键词设置
  • 商城手机网站怎么做北京网站建设公司优势
  • 投资理财网站模板外包网络推广公司