00:00
然后咱们我在笔记中写下啊。整合spring权限框架。咱们里边啊,就是代码的这么一个整合。那怎么整合给大家来说一下啊,首先我们要做的第一部分,咱需要先创建一个这个一个模块,这个模块我在昨天创建过了,我是在这个位置。就是我在common里边建个模块叫做screen security啊,就这部分,所以咱们第一部分需要先创建这么一个模块,这个模块我是放到了这个位置,各位按照结构给它创建一下。啊,第一步做到了,然后第一步做到之后,咱做第二步操作,第二步怎么做呢?在我们这个就是这个模块中。啊,Uiy这个模块中,咱需要先引入相关的这个依赖,就是你把依赖需要引入,这是第二部分,然后这个依赖不需要各位记,我在课件中已经听出来了,就是各位把这些依赖直接引入就可以了,啊,这是我们的第二部,我这里边应该是提前引入过了,就是引入。
01:14
这些。啊,然后把它给大家解到我这个笔中来啊,这部分啊。然后这个依赖我们来看一下啊,之前应该咱都见过这依赖,然后依赖中首先第一个就这个叫common us,因为咱要用到里边一些相关的工具类啊,这个啊第一个,然后第二个这是核心的,就是boot start,是supreme这个权限框架,咱需要把它引入,但是这个引入过程中,它需要联网去下载依赖啊,各位多等一会儿,就等它下面加载完成,如果说下载失败,你把我仓库中对应的依赖给它直接复制过去,因为里边会涉及到权限控制那个依赖。然后除了他之外,还有第三个这个东西。
02:00
不是,各位是否记得啊,这是什么?是不是咱之前说那个JWT,因为咱要生成token嘛,需要用到JWT生成token这个字符串啊,这是我们的第二步引入依赖给咱做到了啊,然后第二步做到之后,第三步咱就可以啊,就是各位到我的源码里边复制这个整合的这个代码就可以了,你把这个代码直接复制过去就可以了,那这里边啊,但是大家看一下啊,就我今天又共享一遍啊,你用我今天这个或者昨天也可以啊,咱就最好用今天这个在里边这个地方,一个叫后端整个代码,然后里边有一个three,你把这个代码直接复制过就可以了,就是复制common。里边的这些啊,这些直接拿过去,因为它是一个固定的一个代码。这个啊,各位给他知道啊,就是呃,我就。截这个图了啊。各位直接复制我里边的这个代码,你把common这个目录直接都复制过去就可以了。
03:04
这是我们的第三步啊,用它来做一个整合,所以这是基本的一个过程,就是第一步建一个模块,第二步有依赖,第三步复制我那个源码中这个代码就可以了啊,咱们今天我提供一个叫后端整个代码中这个spring,你把这个代码直接复制过去啊,我提前复制了啊,就是从里边复制的内容,这里边不需要配置文件,因为它就是一个整合的一些相关配置。这个啊,咱的一个过程啊,然后这个我们都做到之后,下面给大家就来解释一下咱这个代码的一个结构,也就是说这里边有很多的这个相关的类啊,这些内容,而这些他们都是什么意思,给大家我一个一个详细做解释,不需要各位挑一遍,但是要你知道每个类他们都是干什么的,因为这个结构是固定的,包括类中一些核心点,我也会具体说到。啊,这个是咱们马上说到的啊,然后我这里边呢,在我的课件中给大家有张图,这个图我就直接截到咱的笔记中来啊,就是关于我们这个代码的结构。
04:11
啊,那我写一下第四个啊。咱们这个整合代码的这么一个。结构啊,就是这么一个结构,那结构咱先看一下我的课件中,然后给各位详细解释一下里边的每个类分别都是什么意思啊。咱来解释一下啊。放到这里啊,然后咱先大概看一下啊,就我这里边呀,有这么多类,然后这个类咱们快速浏览遍啊,然后再看内容,首先第一个类,这个类叫token web config,我强调啊,这些类的名字是随便起的,只是里面有些内容是固定的啊,这是这是一个什么?是一个配置类,就是咱们做spring security需要一个核心配置类,就加一个configuration这个配置类啊,这是第一个,里边会配置一些核心内容,比如咱们自来看。
05:03
然后第二部分叫相关的实体类,也就是说啊,咱们用spring security的时候呢,里边会涉及到一些相关的实体类,这实体类是它本身用到的,咱需要给他自己创建实体类,这是第二部分,然后第三部分这两个很重要,是两个过滤器,这两个过滤器是什么呢?对应就是spring的两部分。刚才我刚说到啊,希望各位记住啊,咱也回顾一下,是不是有两部分,哪两部分。是不是一个叫认证,是不是一个叫授权哟,而这两过滤器什么意思,一个对应就是认证过滤器,一个对应就是授权过滤器,就是两过滤器一个对应认证,一个对应授权啊这两个内容,然后最后在包里边有四个类,这四个类是四个工具类。有哪些工具类呢?我们看一下啊,第一个是密码怎么处理,因为咱们密码都是MD5加密,第二个是退出该怎么做,第三个是token生成工具。
06:09
就偷开这工具链。然后第四个什么,比如你现在没有权限,它会怎么给你处理,就是反映什么值啊,主要这么一个基本结构,比如我们用按照这个结构就能做一个整合啊,这是咱们一个总体上的一个介绍,然后介绍之后咱下面看一下每个类中的细节啊,不需要各位写,但是要求你能看懂,那咱们一个来看一下啊,第一个刚才我说的叫核心配置类。然后咱看里边啊有什么内容。可以看到啊。把这个往这边拉一点啊,大家看第一个这个类名字随便写的,只是一个要求,这个类必须你要继承一个类,这个类叫web security conig啊这么一个类,这是spring中这个核心配置类,然后你写完之后,大家看到这个主体叫coniggu conigguration表示配置类,然后里边加上这个security的这个注解啊,就是它开启这个表现,控制这个相关注解,然后在里边有这么一些基本内容啊,这些内容都是固定的,不需要各位写。
07:15
然后咱们看啊,第一个是它这个构造,在构造里边咱可以传一些相关的参数,那参数咱看一下都是什么意思啊,咱一个来看啊。首先大家看第一个参数这个啊,咱没有说到,我先说一下什么意思啊,比如我现在做这个就是认证的时候,或者说做登录的时候,咱们登录是不是要查我的数据库,也就是我刚才画的。这张图他要查数据库,得到用名和密码,然后得到之后再查用户是不是这个权限列表呀,就是这个过程,咱是不是要查数据库,所以说这个类是咱一会儿自己写一个类,让他去查数据库,查数据库过程需要我们写,而咱只要把数据返回交给所率就可以了啊这是第一个,就是咱们自己写这个自定义查询数据库的这么一个类啊,这是注入这么一个service。
08:10
然后第二个叫token manage,就是咱们下面看到的这个东西,生成token工具,第三个叫default password,就是你的密码怎么处理,第四个叫red,大家看,因为咱们现在数据是要放到中,就你ready to,咱们做read操作之前用过啊,主要这么几个基本的值,第一个就是咱们一会自己写那个查询数据库一个类,第二个token生成一个工具类,第三个密码处理,第四个red table操作ready,然后你把这些用构造注进来啊,这种方式咱之前也用过,当然咱用那个easy Excel就这么做过。啊,就这比较常见一种方式啊,然后下面有它的一些基本配置。在配置中,第一个配置是它的核心配置,然后第二个是密码怎么处理,包括还有你配置就是哪些不做拦截的一些处理啊,主要三个部分是固定的啊,然后咱们看啊,第一个核心配置,在核心配置中的一个固定结构啊,这些不需要变,而咱变的话呢,主要有一个地方,大家看这个地方。
09:19
注意看啊。这什么意思?看这个单词叫logout ul,它表示什么意思?就是现在我们要设置咱做退出的那个就是地址,就是退出请求的地址里边几个地址,但我强调啊,这个地址或者说这个操作是由瑞瑞做的,这地址理论上可以随便写,没有什么要求,因为不是我们写退出,是由sir瑞帮咱退出,咱只需要写个地址可以了,这地址没有特别要求啊,因为不是我们写的,比如现在我就写这么一地址掉我的mean al index logout啊,是随便写一个地址。啊,这是设置,它主要咱要改的话,也就改这地方设置退出地址,然后下面是密码处理,因为咱们是MD5加密,包括咱看啊在我这个密码处理类中,就这个类中。
10:13
你看我的写法是用这个就MD5做个加密啊,这是一种写法,然后最后就是你可以设置我当前操作中哪些操作不进行这个权控制,比如哪些不需要权限可以直接访问,比如你看我写到的啊,咱看一个主要的。这个东西。这是什么,是不是swag,因为咱swag是不需要权限,咱们可以直接做测试嘛,就是如果说你有其他规则,按照这种结构DRR里边就可以了啊这个啊是咱们说的第一个核心配置类是一个固定的,而咱需要改的话,也就是改它这个退出的这个地址,这地址是随便写的。这个啊,咱就做一个说明,第一个核心配置类,然后这个说完之后,咱再看第二部分,第二部分呢,在我们做spring中,它需要我们写上这么一个实体类,但实体类中咱看啊,主要是这是一类叫这个security。
11:07
U,你看11类中有个要求。什么要求实现了一个接口,这接口是由security提供出一个接口,所以它就是在操作中,他用这个接口里边这个内容,然后做我们数据这些封装,所以说我们要写的话,咱需要自己建个类,在类里边我们就是实现这个接口就可以做到,但是我这个类中需要你存入你当前用户信息,所以这位置我又写了一个user,这是我当前用户,比如说你有用户名,什么密码,什么昵称等等啊,然后给他传过来就可以了,这是两个实体类。用于security做这个数据存储,做数据操作,但是它要求就是必须需要它实现,这个接口叫user detail啊,是个固定的写法啊,不需要各位写,你看懂就可以了,这么一个结构。
12:00
固定的啊,然后这个说完之后,咱往下看,这两个是最核心的过滤器。第一个过滤器。这个过滤器叫。Token log filter这一名字虽然起的,但是有个要求,他必须要继承这个类啊,作为这个认证,然后里边有认证中这些方法,这些方法我们看一下啊,第一个就是它那个构造也是传递参数,然后第二部分看这个这个部分。这是什么意思呢?大家看一个单词,一会儿咱会演它的过程啊。大家看,这单词叫type。这什么意思啊?注意啊,就是这里边就是这个方法作用是什么,比如说我现在在我的页面中输入用户名和密码,而咱因为用的是,所以说在这方法中会做什么事情,又得到你输入的用户名和密码,然后得到之后再做这个认证啊,这就是我们这个方法得到用户名和密码,然后得到之后咱们往下看。
13:02
看这个方法。这很好理解。这叫什么?Successful是不是成功啊,就是当你认证成功,它只用这个方法,当你认证失败就用这个方法,而认证成功之后,因为咱们把数据要放到咱的red中,就刚才我说的这个过程啊,往里边放咱的数据,然后这过程中咱要生成这个ton,用到咱们刚才看到这个工具类JWT方式把这生成。这个啊是登录的这个过滤器,就是登录咱们输入用户密码,然后查我们的数据库。如果认证成功,它里边就是到这个方法,把我们的数据放到re中,并且生成token值,给它做一个返回啊,这个登录的这个过滤器,然后还有一个是这个授权过滤器,这个过滤器,这个过滤器中做什么呢?大家看啊,主要是这个方法。你看他先从hier中把这值取到,就是咱们说的这个过程,然后取到之后,它里面就是判断你当前的用户有没有操作这个菜单的权限,如果有权限直接进行操作,没有权限直接让他提示没有权限,比如咱们说的过程。
14:15
给这个用户赋予权限才能做操作,如果他没有赋予权限,或者他没有权限,那他就不能操作,这个叫授权的过滤器啊,这是两部分,一个认证,一个授权,这个位给他知道一下就可以啊,然后最后就是工具类,包括密码处理包,这个退出啊,他怎么退出,就是你看就是移除token,然后这是token的工具,还有一个你没有这个权限做这么一个提示,主要里边的这么一个内容啊,所以咱们把这个代码。做了一个基本介绍。各位给他知道啊,然后在代码过程中呢,这里边啊,还需要用到有两个工具类啊,我在这课件中没有写到,但是我代码中提出来了,咱看看地方啊,就这个。
15:00
两个工具类,所以各位啊,需要把这工具类给它也是做个复制。呃,这我也写一下啊。写到我的笔记中啊,我就写第四个,咱需要复制我们的工具类,到我们那个common这个U里面去啊,就是复制一个工具类。到我们的这里边啊。就这个啊。也就是大家看啊,在我的common YouTube中,我是之前复制过了,里边多了两个工具类,一个是MD5,一个是response us,因为咱们在里边需要啊,如果不复制它里面会提示这两个找不到,你需要把这个工具类也给它复制过来,就是这两个东西。这个啊,之前课件中没写这步,但是他需要的啊。这各位注意一下啊,然后这个复试之后第五步就是刚才在刚才复制那个这么一个结构。这样的话啊,咱们把这个做一个说明,也就是说这个过程是一个固定的过程,里边结构也是固定的,它主要就这几个代码,第一个是核心配置类,在核心配置类中,主要咱配置就是它你的这个退出的地址,然后这里边有几个实体类,在实体类中主要是让实体类实现这么一个接口,因为这个接口是由提供的,你要放到中哪些相关内容,所以咱要实现这个接口。
16:26
然后第三个是filter里边有这个登录和授权的filter,然后这个过程中呢,在登录里边啊,包括它位置有这么一个结构,然后登录中呢,有个地方设置。啊,刚才忘了说这个地方,大家看啊,这个地方。这是什么呢?就是设置你当前登录那个请求地址,这个地址也是随便写的,没有固定的,因为这个登录不是由我们做的,是由帮咱做到的,咱只需要写查数据库那过程就可以做到这个啊需要做个设置,这是登录过滤器,然后还有一个认证过滤器,就是你只有说用给你用户授权之后,你的用户才能做这个真正操作就是先认证成功再授权。
17:09
然后这个之后,最后有几个工具类,包括咱们密码处理,咱是做MD5加密,包括这个退出就是移除token,比如这些值,然后这个是token生成工具,用GT生成,还有最后一个,当你没有权限,那我们会提示什么信息,这是啊,关于S中这些。基本类的说明啊,各位把这个知道就可以了啊,不需要你敲,就你知道每个类都干什么的,把这个直接复制到我们代码中就可以了啊,这是我们说的就是第四部分啊,直接复制整个代码里边这个代码的结构。然后这个我先。
我来说两句