1.汇通项目中的问题:
1.用户可以通过浏览器。在未登录的时候进行随意的跳转。
2.不用的用户应该看到页面中不同的内容。只有超级管理员等。才可以查看系统的全貌。
2.Shiro安全框架
Shiro是apache旗下的一款安全框架,主要功能模块有登陆认证。权限认证、加密处理、Session管理。
同类型产品:
1.Shiro的功能模块图
Authentication: 登陆认证模块
说明:如果软件中采用了Shiro登陆认证后,如果用户没有进行登陆操作。则不能跳转到软件内部,始终被shiro进行拦截,直到用户使用正确的用户名和密码登陆后才予以放行。
Authorization: 权限控制模块
说明:不用的用户由于角色不同,所管理的模块不同,所展现的用户页面也不相同。
SessionMagement: Session管理
主要管理Session对象。从中获取User对象。方便开发
功能:SSO
Cryptography:
加密处理:
用户输入的明文,经过shiro内部加密后,转化为密码。
2.Shiro调用流程图
1.applicationCode: 应用代码
程序调用/人手动请求/机器自动请求
2.Subject: 表示"用户"
Subject是Shiro对外暴露的唯一入口程序,主要通过Subject提交的参数。Shiro才能识别。否则用户永远被Shiro拦截。
Subject:最主要的功能点就是用户的登陆认证模块。
3.ShiroSecurityManager shiro安全中心
Shiro安全中心是Shiro中最为重要的核心模块,在内部进行一切的校验判断。
4.Realm: 生成资料(原材料)
为Shiro安全中心,提供一切真实的数据。包括用户的真实的用户名和密码。用户的权限、Session..等
Lg:
当用户进行登陆操作时,首先应该将username和password交给Subject来处理。subject将用户输入的数据传递给Shiro安全中心后,Shiro安全中心内部进行校验处理。Shiro安全中心,通过Realm查询用户的真实的数据信息后。在内部比较二者之间是否有差异。如果相同则证明用户名和密码正确。如果有不同则证明用户名和密码错误。再次拦截。
3.Spring整合Shiro安全框架:
1.添加jar包文件:
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.2.3</version>
</dependency>
2.添加Shiro配置文件
1.添加realm
2.自定义realm:
3.定义过滤器
4.在web.xml中配置过滤器
4.汇通引入Shiro实现登陆认证:
1.Shiro将程序保护起来
2.Subject的登陆操作:
3.编辑自定义的realm
1.继承
2.为shiro安全中心提供真实的用户信息
3.为用户的密码加密
4.添加配置文件:
5.通过session保存用户对象
5.权限认证:
思路:
1.权限认证是在登陆认证之后进行的
2.做权限认证 需要准备2套列表 1.用户拥有的权限 2.用户需要的权限
3.引入shiro标签控制菜单模块
1.通过配置告知shiro那些模块信息进行权限控制
1.1引入shiro标签
<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>
1.2通过标签控制一级菜单
1.3通过realm为shiro安全中心提供用户的权限信息
1.4查询sql语句:
SELECT NAME
FROM MODULE_P
WHERE MODULE_ID IN
(SELECT MODULE_ID
FROM ROLE_MODULE_P
WHERE ROLE_ID IN
(SELECT ROLE_ID FROM ROLE_USER_P WHERE USER_ID = '1')
)
6.汇通项目切换数据库
1.将ht.sql导入到本机
1.先建立ht的数据库
2.导入ht.sql文件
2.ht项目切换数据库
拷贝配置文件
切换数据库:
7.Vmware虚拟机配置
1.安装虚拟机
需要秘钥
2.打开linux系统
3.vmware网卡配置
安装虚拟机后 默认出现2块网卡 不要修改
4.网络配置:
1.桥接模式:
如果虚拟机采用桥接模式,则虚拟机在当前网段独占IP
本地Ip:10.8.34.6
虚拟机IP:10.8.34.7
2.nat模式:
在当前网络环境中 开辟一个空间保存自己的私网用户。
3.VMware保存
开机启动点击F2进入BIOS系统
修改BIOS中的虚拟化设置 设置为 enable