00:00
好,接下来呢,我们为这个系统加上注销功能,那么注销呢也非常简单,跟登录一样,我们只需要调用HTTP点有一个叫logout方法,这个方法呢就是开启自动配置的。开启自动配置的咱们这个注销功能,这自动配置的注销功能做了哪些事呢?我们可以进去看一下它的这个文档啊,我们每次点进来呢,有点麻烦,我们点一个setting,我们让它实时的在general里边,让它显示我们这个文档,好来看一下它的自动配置规则,这个规则呢,它会说会访来访问一个logout请求,这个呢表示用户退出,帮我们来清空这个session,所以说呢,哎,它相当于哎访问。访问杠log out,然后呢表示用户注销并清空session,好,这个呢就是我们的退出,那我们可以在首页来写一个这个退出的表单,好,比如呢,我在首页这个请登录下边我呢先来写一个简单的form表单,这form表单呢,Action地址th action来指定at大括号当前项目下的log out,由于呢要退出,所以说我们这个method啊,默认呢它还得是post,这是我们spring security的规定,虽然文档那呢没写,但是我来加上input呢type等于好。
01:43
我们来写一个value。注销来测试一下,注销能不能使用我来启动一下。好,我来访问刷新这呢有注销按钮,我们来先登录进来,现在呢,我们随便点一个登录进来,张三123456登录进来,登录进来以后呢,我来访问这些都是可以的,它没有啊权限的就不能访问,那我来注销点一个注销,注销完了以后呢,大家看到只要我们退出成功,它会返回我们这个登录页面,而且呢,后边加一个log log out啊这又是一个默认规则。
02:26
好,我们在这呢,来记录一下。第二个咱们这个注销成功会返回这个页面。而这个logo呢,是又是之前默认生成的登录页,那我不想让它这种规则,我想让它退出完成以后,就还是来到我们这个首页就行了,那怎么做呢?诶那这有一个logout点来定制它的规则,点一个什么,有一个叫log success URL也说呢,我们退出成功以后,我们要去哪一块的地址,我写一个杠,哎这就是我注销成功,注销注销成功以后来到首页好来重新测试一下。
03:20
启动。我们来访问一下我们这个页面。好,稍等一下刷新,我们先来让他登录,我写一个张三123456。好,登录进来呢,它能访问的页面哎都可以,不能访问的页面是没有权限,那我们来注销一下,默认呢,之前注销会回到登录页,但是我现在来点注销,诶我们发现呢,已经回到首页了,我们再来访问点,诶现在呢,没有权限,重新提示登录,这就是我们配置的注销功能,那么接下来呢,我们再来做两个功能,第一个呢,就是当我们用户没有登录的时候,来示这句话,游客你好,当用户登录了以后,我们再来显示注销按钮,包括用户信息,那我们再来做第二个功能,如果用户是张三登录,张三由于有VIP1和VIP2权限,那就只来显示这两个路链接,如果是李四登录,它假设呢没有VIP2权限,那就不显示VIP2部分的内容,这个怎么做呢?我们可以结合C。
04:35
Life模板引擎提供的对spring security的支持,包括呢,我们这个文档里边也有,我们可以往下翻,诶这一块呢,就有安全相关的一些属性,比如security authorize,我们来进行授权,怎么授权呢?我们可以在这判断is authoruthenated,也要是否认证通过,哎,也就是说我们是否登录,如果登录成功了,我们还可以用一些,呃安全属性,比如security authorification,我们能获取的认证信息,比如用户的名字,哎,们来得到用户的名字,包括呢,用户所拥有的一些角色,我们可以用principleci author authorities来得到这些等等等等,但当然我们要使用这些安全属性,我们必须引入security和s life的这个整合模块,那我们先来在这一块我们的po文件里边来引入一下。
05:36
这个整合呢,我们还是来到parents里边,我们来看一下parents的dependences里边,Dependences里边呢,有更安全的spring security的这个version版本,它呢现在是231,我们把它来变一下。变成什么呢?来搜索一下。
06:00
我们要变成能适合IN3版本的这个security模块,好,我们就来搜索life,主要呢,我们来往下翻,这一块呢,有extra security来引入它来,我们这一块呢,就用这个302,我们把这个版本来改一下,使用302。好,我们来到我们的文件里边,好把这个属性版本呢,我来声明成302,当然我们要引入这个依赖dependency dependency呢,我把整个呢,我们就复制来CTRLC。CV,哎,我们就不用写版本了,删掉好我们这个life和spring security的依赖我们就引进来了,然后呢,我来到页面,我们也这么来写,这页面呢,我们先来引入security的名称空间拿来。
07:00
好,我们来加上这个名称空间,然后呢,我来使用这句话呢,首先是没登录的时候来写的,我来写一个div,我来写一个security,有一个authorize,我们来授权,授权什么呢?我们来判断is author,也就是说是否咱们这个认证了,如果没认证,我写一个非没认证的情况下,我来显示这句话,如果认证了,我再来一个div security authorize,我们来相反盘断,如果认证了,如果认证了呢,我们就来显示这个注销按钮,当然同时呢,我们来显示啊,是哪个用户,我们来HR谁谁谁,哎,你好,您的角色的角色有什么什么,哎,我们显示在这,当然这个人名呢,我们需要取出来,我来写一个span。
08:00
这个span里边呢,我们就把人名写上这个名字,我们可以使用SEC来,我们also开始,我们来取出他的名字,还有您好,您的角色有什么,我们也可以来取出来,来写一个败。角色有哪些呢?我们给它列举出来,我们使用SEC啊,Also,我们来写上,有一个叫print,可以获取到also practice可以读取到所有的角色。好,我来启动测试一下,看我们首页的标头,这两个能不能根据登录状态显示出来。我们来到刷新来,我们现在呢,看到的是游客你好,那如果我要登录好,我随便点一个页面,我来登录一下123456,我点登录,然后呢,我们返回主页,诶现在呢变成了张三您好,您拥有的角色VIP1VIP2,我们呢就是按照登录状态显示的那下边那就一样了,哎,我呢根据不同的角色来显示不同的武功秘籍,那我们就可以在这儿重新改一下普通武功秘籍,我来写一个div SEC点我们来授权authorize,咋授权呢?我们来写一个喊子入,来判断你是不是拥有某一个角色,什么角色VIP1,你有VIP1角色,我来给你显示普通武功秘籍,来把整个放在这里边儿,那其他的一样。
09:42
如果我们是VIP2DIV,好,来写一个section authorize,看肉我来判断,如果是VIP2,如果有VIP2的角色,我们就来放上高级武功秘籍,那下边这个呢,就是div,买SEC authorize来判断,如果有VIP3。
10:08
哎,我们就放上高级的武功秘籍,然后这些页面的元素也能根据我们角色的不同,我们来进行判断显示,好来启动测试一下。那默认没登录的情况下,我们可以来看一下来刷新,那么页面呢,什么武功秘籍都不会显示,我们来可以来登录一下,我来写一个login页面,好,我们来到login,这个login呢,来输入张三。张三123456好,我来登录进来,我们张三一登录进来呢,我们就会看到只会显示张三能操作的,那如果我们李四登录进来,好,我们使用李四登录,那么李四能操作的资源就是按照他的角色来在这儿显示的,好没问题。
11:02
我们重新点击注销,诶这块呢,如果想登录我们可以点击请登录,这个链接呢,也是链向我们默认生成的登录页的,哎,我们不要里边请登录我们来看一下,哎,就是链向默认的log页,好,我们来也再来测试一下张三123456,张三登进来拥有张三的啊所操作的资源,包括可以注销请登录好都没问题。
我来说两句