当前课程知识点:软件开发实训--动态网站开发 > 9 后台主界面实现 > 9.4授权验证拦截器实现 > 9.4.1授权验证拦截器实现
同学你好
欢迎回到软件开发实训课堂
上节课咱们把主界面实现了当登录成功后
会转入到主界面
可是虽然我们登录成功了
这个时候如果我们没有登录
依然可以直接访问我们的其他功能界面
比如说我们打开浏览器
直接输入
editor user
他依然能够进入到编辑用户界面
这个是不允许的
那么为了解决这个问题
我们需要把身份认证后的相关认证操作也
加进来
所以对于认证后的相关功能
操作权限的处理
我们在这里要说明一下
操作权限的处理
通常操作权限处理
首先使用户拥有角色
根据角色
我们给它分配对应的功能
然后在功能上对应有我们要访问的资源
这是通常我们做身份认证后
授权相关的操作
那么在这里通常我们使用的是spring security
或者是 等等这样的框架来
做安全
但是在我们这门课里边
我们目前所训练的内容不包括框架的使用
因此你只需要了解他们之间的关系
就是首先用户会获得角色
根据角色所拥有的功能来操作对应的资源
这样一个关系
了解后我们实现相对来说比较简单一些
就只判断这个用户是否登录
因为我们认为一个网站它就一个管理员就
足够了
所以通常情况下我们就一个管理员
不需要其他的角色来处理
在下面实现时
我们如果完成了这个实训
你可以把对于功能授权认证的这一块
通过security来实现
或者你自己把用户角色功能资源之间的
关系给它实现了
完成一个完整的认证过程
那么我们这里怎么来实现我们当用户
登录成功后
每次访问操作的资源
也就是我们说的功能
每次操作一个功能
那么就要去看一下
验证用户是否已经登录
如果登录了就让它访问
如果没有登陆就不让他访问
否则不可访问
那么如何来说明一个用户登录还是没有登录
这个时候就是session在这里起了一个
关键作用
通过session中保存的优者对象来判断
用户是否登录
如果session中存在用户
user那就说明他已经登录了
当然你也可以判断他user里边是不是我们
需要的用户
比如说他的ID是什么
对吗
这样去判断它更细致
好
那么我们如何来实现在Springboot这里
咱们可以增加一个拦截器来拦截所有的
请求
好
怎么做
第一步在我们的包上点击右键
选择Java类
我们把它就叫做check user
interceptor
用户检测
拦截器
我们依然把它放到了my sight
这个包里
在这里我们去让它实现
implements Spring框架提供的handler
interceptor
处理器拦截器
这是一个针对谁每次针对请求进行拦截的
一个拦截器接口
我们只要实现它就可以
那么它也是提供了一些默认的方法
提供了默认的方法
我们就不需要适微器
你看我现在实现了
但是并没有实现它的方法
它也不会报错
这就是接口拥有默认方法的一个好处
现在我为了实现接口里我需要的方法
只需要点击右键
选择插入代码
然后覆盖方法就可以了
勾上我们的prehandle
处理之前
处理谁请求request之前我们来做
先前处理
把他的请求给他进行验证一下
那么我们要验证的请求主要就是看用户
有没有登陆
首先我们得到我们需要的用户对象
也就是我们所说的session对象
先拿到session
session是怎么获取
就通过request就可以得到session
对象了
然后再通过session对象
他的getattribute方法
得到存储的用户信息
获得绘画对象
然后得到绘画范围内的user对象
导入我们需要的
因为这个session
他的方法getattribute返回的是
一个普通的对象
所以我们还需要进行强制类型转换
把它转换一下
这样我们就能够知道它有没有执行登陆操作
如果说user等于空
或者说它不等于空
我们得到它的UID等于空
也不行
或者user.getter UID小于等于0
我们认为它也是没有正确登录
这样我们就知道了
session用户
它确实存在了上面那些条件
都不为真
那就说明用户登录了
登录了我们就可以转向到我们的正常的
请求区
但是如果说这些条件任何一个都是满足的
比如说用户等于空
或者ID等于空或者是ID小于等于0
我们认为它没有登陆
没有登陆就把它转向转向我们就借助于
response
他的方法
sendredirect
然后把它转向到我们的登录页面去
最后我们返回一个值
那么这样我们的界面就转向了
如果说这些都不满足我们执行正常的
操作流程就可以了
好
有了这个拦截器
我们看怎么来使用拦截器
为了使用拦截器
我们需要在配置文件或者application这个文件
去添加一个注册拦截器的相关方法
在配置文件里
我们点击右键覆盖方法
我们找到添加拦截器的方法
把拦截器给它注册上去
这里面我们可以先注册一个bean方法
来返回我们的拦截器
你防止有时候他需要的时候找不着我们的
拦截器
简单的返回它的实例
在注册这只需要调用方法就可以了
这样我们就把拦截器注册好了
这是把拦截器作为bean让Spring管理
以防止Spring无法找到拦截器
这个方法就是注册拦截器
我们定义的拦截器
在这里来注册
好
关于拦截器的实现就讲到这里
我们下节课再见
-1.1课程介绍
--1.1.3随堂测试
-1.2网站需求分析
--1.2.4随堂测试
-1.3网站首页分析
--1.3.3随堂测试
-1.4导航菜单分析
--1.4.3随堂测试
-1.5内容区域分析
--1.5.3随堂测试
-1.6内容副页面分析
-1.7编写需求文档
-2.1后端页面总体分析
--2.1.3随堂测试
-2.2用户管理功能设计
--2.2.3随堂测试
-2.3内容与分类功能分析
--2.3.3随堂测试
-2.4网站配置功能设计
--2.4.4随堂测试
-2.5数据库及表结构分析
-总体设计文档
-3.1前台模板约定
--3.1.3随堂测试
-3.2网站配置接口设计
--3.2.3随堂测试
-3.3菜单接口设计
--3.3.3随堂测试
-3.4内容接口设计
--3.4.3随堂测试
-3.5幻灯片接口设计
--3.5.3随堂测试
-补充设计文档
-4.1用户管理功能设计
--4.1.3随堂测试
-4.2菜单管理功能设计
--4.2.3随堂测试
-4.3内容管理功能设计
--4.3.3随堂测试
-4.4网站配置信息设计
--4.4.3随堂测试
-完成设计文档
-4.6随堂测试
-5.1开发环境搭建
--5.1.2随堂测试
-5.2Web前端环境搭建
-5.3创建用户实体
--5.3.2随堂测试
-5.4用户实体表创建与初始化
--5.4.2随堂测试
-5.5用户数据访问接口实现
--5.5.2随堂测试
-5.6环境搭建问题
-6.1用户服务层接口实现
--6.1.2随堂测试
-6.2用户列表和编辑控制器实现
--6.2.2随堂测试
-6.3用户存储和删除控制器实现
-6.4用户添加、编辑界面实现
-6.5用户管理添加用户调试
-7.1用户查询模板实现
--7.1.2随堂测试
-7.2用户信息编辑的实现
-7.3单个用户删除实现
-7.4多个用户删除实现
-8.1用户列表分页基本实现
-8.2用户列表查询结果分页实现
-8.3通用日期处理
-8.4整型日期处理
--8.4.2随堂测试
-8.5枚举数据的应用
-9.1登录逻辑实现
--9.1.2随堂测试
-9.2登录界面及流程调试
--9.2.2随堂测试
-9.3管理主界面实现
--9.3.2随堂测试
-9.4授权验证拦截器实现
--9.4.2随堂测试
-9.5拦截器调试
-10.1分类接口实现
-10.2分类添加、编辑实现
-10.3分类树结构实现
-10.4分类删除实现
--10.4.2随堂测试
-11.1内容实体定义
-11.2相关接口定义
-11.3服务接口实现
-11.4内容添加、编辑模板实现
-11.5内容添加、编辑控制器实现
-11.6内容检索页面实现
-11.7内容分类树实现
-12.1修改UEditor相关问题
-12.2整合UEditor到内容编辑界面
-12.3UEditor图片对话框应用
-12.4文件上传问题处理
-13.1网站配置相关类实现
-13.2网站配置界面模板实现
-13.3网站配置调试
-14.1网站首页布局实现
-14.2菜单Vue组件实现
--14.2.2随堂测试
-14.3幻灯片Vue组件实现
-14.4滚动Vue组件实现
--14.4.2随堂测试
-14.5滚动接口实现
-14.6滚动接口调试
-14.7幻灯片接口实现
-15.1首页区域实现
-15.2首页内容脚本实现
-15.3首页完善
-15.4Vue组件放入单文件
-15.5详细页面实现
-16.1网站测试介绍
-16.2功能测试
-16.3打包发布
-16.4部署运行
--16.4.2随堂测试