赞
踩
本章主要从零开始讲解基于自定义注解完成拦截器自定义方法的权限认证讲解
需要准备的工作
完成基本springboot框架的搭建
完成与MySQL数据库的连接
第一步先进行mysql表的创建,我们运用RABC模型分别创建五张表,分别为
admin(用户表) admin_role(用户_角色表) role(角色表)role_permission(角色_权限表)permission(权限表)
简单讲解一下RABC的意思是角色的访问控制,有三个基础部分组成:用户,角色,权限
RABC模型本质是以一个 who是否可以对what进行how的访问操作,对该逻辑表达式是否为true的判断纠结的过程
完成MySQL表的创建和简单了解RABC模型后,我们进行下一步,自定义注解的创建
- package com.example.gateway.annotation;
-
- import java.lang.annotation.*;
-
- @Target({ElementType.TYPE,ElementType.METHOD})
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- @Inherited
- public @interface AuthCheck {
- String name();
- String permission();
- }
我们创建自定义注解AuthCheck,并添加上两个变量,分别为角色名 name以及权限值 value
该注解规定了凡是被添加上注解的接口只有该注解规定的角色和权限值才能进行访问,没有相应注解的接口可以进行正常访问,而要完成该需求就需要我们用到拦截器HandlerInterceptor。
下一步完成拦截器HandlerInterceptor的创建
- package com.example.gateway.config;
-
- import com.example.gateway.dao.AdminRoleDao;
- import org.springframework.stereotype.Component;
- import org.springframework.web.method.HandlerMethod;
- import org.springframework.web.servlet.HandlerInterceptor;
-
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.List;
-
- @Component
- public class AuthCheck implements HandlerInterceptor {
- @Resource
- AdminRoleDao adminRoleDao;
-
- @Override
- public boolean preHandle(HttpServletRequest request,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。