我是靠谱客的博主 乐观泥猴桃,最近开发中收集的这篇文章主要介绍无法本地校验颁发者的权限_使用AOP实现权限拦截校验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

aop的好处就在于它可以只让你写一次代码,然后这些代码就可以用于容器当中的所有对象,权限拦截校验是一个表现形式。

那么,我们要如何实现这个功能?

首先,定义一个注解:

42c9033c1e9c8d2cd0213ffaf5ca65df.png

这里有一个PermissionEnum枚举类,当然可以直接使用String 代替,不过不推荐,其源码如下:

c8d1be8ccb1d60e5a968fdbe934b3ff7.png

这里,我们控制的权限颗粒度是方法,所以必须使用一个标识符来标志出每个方法,我们只要将Permission注解加到方法之上,就能被切面所拦截,并进行权限校验:

0b28f1cbdb037ee9fb60289917cb5fab.png

上面是一个方法示例:

接下来就是重点了,切入点的编写:

cb8efff83224fa9468c8418a35631fb0.png

代码虽然有点长,但做的事并不多,无非就是获取当前登录管理员的权限,然后判断该其切点的权限要求当前管理是否满足,满足就继续运行,否则抛出一个权限错误的异常。

当然,这个权限拦截校验方案是写死的,也就是说你无法根据实际的情况需要添加或者删除的相应权限,因为这是由系统的权限控制方案所限定的,我们权限拦截的目标是方法,不像其他诸如URL的拦截方案,想要修改方法,即拦截目标,就必须修改源码,所以也就没有必要做成高度可自定义化的权限方案。

最后

以上就是乐观泥猴桃为你收集整理的无法本地校验颁发者的权限_使用AOP实现权限拦截校验的全部内容,希望文章能够帮你解决无法本地校验颁发者的权限_使用AOP实现权限拦截校验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部