关于一套电商平台安全框架的源代码分析 (2)

  

关于一套电商平台安全框架的源代码分析

  

  

关于一套电商平台安全框架的源代码分析

  2、初始化权限信息

    当系统初始化的时候,需要加载接口上的这些权限信息,存储在Redis中。在系统运行期间,当有用户请求接口的时候,系统会根据接口的权限信息判断用户是否有访问接口的权限。权限信息初始化过程的代码如下:

  

关于一套电商平台安全框架的源代码分析

  

关于一套电商平台安全框架的源代码分析

3、用户鉴权

  

当用户请求所有接口前,系统都应该拦截这些请求,只有在权限校验通过的情况下才运行调用接口,否则直接拒绝请求。

基于上述需求,我们需要给Controller中所有方法执行前增加切面,并将用于权限校验的代码织入到该切面中,从而在方法执行前完成权限校验。下面就详细介绍在SpringBoot中AOP的使用。

首先,我们需要在项目的pom中引入AOP的依赖:

  

关于一套电商平台安全框架的源代码分析

创建切面类:

在类上必须添加@Aspect注解,用于标识当前类是一个AOP切面类

该类也必须添加@Component注解,让Spring初始化完成后创建本类的对象,并加入IoC容器中

然后需要使用@Pointcut注解定义切点;切点描述了哪些类中的哪些方法需要织入权限校验代码。我们这里将所有Controller类中的所有方法作为切点。

当完成切点的定义后,我们需要使用@Before注解声明切面织入的时机;由于我们需要在方法执行前拦截所有的请求,因此使用@Before注解。

当完成上述设置之后,所有Controller类中的函数在被调用前,都会执行权限校验代码。权限校验的详细过程在authentication()方法中完成。

关于这套源代码还有很多地方可以分析,在这里只是挑了一部分大概讨论一下就不一一写出来了,有兴趣可以自己下载看看。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdsdj.html