当前位置:   article > 正文

Springboot基于拦截器自定义权限认证讲解_spring 拦截器 权限码

spring 拦截器 权限码

本章主要从零开始讲解基于自定义注解完成拦截器自定义方法的权限认证讲解

需要准备的工作

完成基本springboot框架的搭建

完成与MySQL数据库的连接

第一步先进行mysql表的创建,我们运用RABC模型分别创建五张表,分别为

admin(用户表) admin_role(用户_角色表) role(角色表)role_permission(角色_权限表)permission(权限表)

简单讲解一下RABC的意思是角色的访问控制,有三个基础部分组成:用户,角色,权限

 RABC模型本质是以一个 who是否可以对what进行how的访问操作,对该逻辑表达式是否为true的判断纠结的过程

完成MySQL表的创建和简单了解RABC模型后,我们进行下一步,自定义注解的创建

  1. package com.example.gateway.annotation;
  2. import java.lang.annotation.*;
  3. @Target({ElementType.TYPE,ElementType.METHOD})
  4. @Retention(RetentionPolicy.RUNTIME)
  5. @Documented
  6. @Inherited
  7. public @interface AuthCheck {
  8. String name();
  9. String permission();
  10. }

 我们创建自定义注解AuthCheck,并添加上两个变量,分别为角色名 name以及权限值 value 

该注解规定了凡是被添加上注解的接口只有该注解规定的角色和权限值才能进行访问,没有相应注解的接口可以进行正常访问,而要完成该需求就需要我们用到拦截器HandlerInterceptor。

下一步完成拦截器HandlerInterceptor的创建

  1. package com.example.gateway.config;
  2. import com.example.gateway.dao.AdminRoleDao;
  3. import org.springframework.stereotype.Component;
  4. import org.springframework.web.method.HandlerMethod;
  5. import org.springframework.web.servlet.HandlerInterceptor;
  6. import javax.annotation.Resource;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import java.util.List;
  10. @Component
  11. public class AuthCheck implements HandlerInterceptor {
  12. @Resource
  13. AdminRoleDao adminRoleDao;
  14. @Override
  15. public boolean preHandle(HttpServletRequest request,
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/716391
推荐阅读
相关标签
  

闽ICP备14008679号