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

网页版微信二维码已失效seo课程

网页版微信二维码已失效,seo课程,广州集美组设计公司官网,武汉有哪些网络搭建公司一些权限方面的思考 背景说明自定义注解解析自定义注解 背景 鉴权可以通过切面做抽取 说明 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 自定义注解 自定义注解: 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.dt0577.cn/news/52865.html

相关文章:

  • 优酷的网站头怎么做的2022近期时事热点素材摘抄
  • 求一个做健身餐的网站搜索引擎优化案例
  • 网站备案 教程热搜榜排名前十
  • 个人主页介绍文案沈阳seo按天计费
  • 最有名的免费建站平台排行榜2021年中国关键词
  • 国家建设信息公示平台seo投放是什么意思
  • 台湾宜兰县政府建设局网站免费的舆情网站入口在哪
  • 成都住建局官网e蓉seo排名的职位
  • 做网站图片用什么格式seo关键词优化软件怎么样
  • 网络营销怎么做好推广湖南seo公司
  • 西安高端品牌网站建设东莞关键词自动排名
  • 网站开发建设是否需要经营许可东莞网站建设平台
  • 网站开发应用网络营销课程
  • 怎么在本地搭建网站搜索引擎优化的内容有哪些
  • 免费动画制作网站semikron
  • 做网站背景图怎么插宁波最好的推广平台
  • 连州市网站建设百度总部客服电话
  • 重庆电商网站网络营销方式有哪些
  • 网站建设的有什么需求一站式网站建设
  • 某企业网站建设方案百度推广怎么收费标准
  • 目前专业做水果的网站网站前期推广
  • 手绘风网站品牌推广软文200字
  • 仿政府网站网络推广seo怎么弄
  • 直播网站怎么建设搜索引擎seo优化怎么做
  • 做的视频传到哪个网站好营销的方法和技巧
  • 自媒体人专用网站郑州好的seo外包公司
  • 北京网站制作收费标准百度站长工具seo查询
  • 青海城乡住房建设厅网站网站统计分析平台
  • 微云做网站最近大事件新闻
  • 哪里可以做游戏视频网站seo诊断报告