·认证:系统提供用于识别用户身份的功能,通常登陆功能就是认证功能--让系统知道你是谁。
·授权:系统授予用户可以访问哪些功能的许可--让系统知道你在做什么。
·常见的权限控制方式:
--URL拦截权限控制(基于拦截器/过滤器实现,创建并实现拦截器/过滤器的功能)
左侧的菜单|
|----->>请求 -->(设置拦截器) -->Action -- Service -- Dao -- 数据库
右侧的按钮|
设置拦截器/过滤器,拦截客户端发送的请求,在拦截器中判断用户是否具有权限
·有权限,放行
·(如果伪造请求)没有权限,跳转到权限不足的提示页面
--方法注解权限控制(基于代理代理对象实现,为Action创建的代理对象)
左侧的菜单|
|----->>请求 -->Action(设置注解) -- Service -- Dao -- 数据库
右侧的按钮|
在Action中使用注解
EG:
public class StaffAction(){
@HasPrivilege("String")//执行这个方法,要求当前用户必须具有"String"这个权限
public String deleteBatch(){
//调用Service批量删除
...
}
}
@HasPrivilege("String")只是一个标识,框架会将加入注解的Action创建代理对象,由代理对象进行权限的校验,
·校验通过,通过反射,调用目标对象的方法。
·校验不通过,框架抛出权限不足异常。
··权限表(auth_function)
··角色表(role)
··用户表(user)
··角色权限关系表(role_function)
··用户角色关系表(user_role)
&& 用户需要权限才具有访问的功能,并对数据进行操作。给用户分配角色,给角色相应的权限,
&& 这样用户与权限之间的关系就比较清晰,角色是权限的集合,引入角色是为了方便授权,
&& 用户、角色、权限三者之间的关系:
一个用户可以有多种角色
一个角色可以被多个用户使用
···用户与角色 ·-·-·-多对多的关系
一个角色可以有多个权限
一个权限可以被多个角色使用
···角色与权限 ·-·-·-多对多的关系
创建两张中间表:角色权限关系表(role_function)AND 用户角色关系表(user_role)
角色权限关系表:
-- 角色id --权限id
1 1
1 2
2 1
2 2
2 3
用户角色关系表
-- 用户id --角色id
1 1
2 1
2 2
·授权:系统授予用户可以访问哪些功能的许可--让系统知道你在做什么。
·常见的权限控制方式:
--URL拦截权限控制(基于拦截器/过滤器实现,创建并实现拦截器/过滤器的功能)
左侧的菜单|
|----->>请求 -->(设置拦截器) -->Action -- Service -- Dao -- 数据库
右侧的按钮|
设置拦截器/过滤器,拦截客户端发送的请求,在拦截器中判断用户是否具有权限
·有权限,放行
·(如果伪造请求)没有权限,跳转到权限不足的提示页面
--方法注解权限控制(基于代理代理对象实现,为Action创建的代理对象)
左侧的菜单|
|----->>请求 -->Action(设置注解) -- Service -- Dao -- 数据库
右侧的按钮|
在Action中使用注解
EG:
public class StaffAction(){
@HasPrivilege("String")//执行这个方法,要求当前用户必须具有"String"这个权限
public String deleteBatch(){
//调用Service批量删除
...
}
}
@HasPrivilege("String")只是一个标识,框架会将加入注解的Action创建代理对象,由代理对象进行权限的校验,
·校验通过,通过反射,调用目标对象的方法。
·校验不通过,框架抛出权限不足异常。
··权限表(auth_function)
··角色表(role)
··用户表(user)
··角色权限关系表(role_function)
··用户角色关系表(user_role)
&& 用户需要权限才具有访问的功能,并对数据进行操作。给用户分配角色,给角色相应的权限,
&& 这样用户与权限之间的关系就比较清晰,角色是权限的集合,引入角色是为了方便授权,
&& 用户、角色、权限三者之间的关系:
一个用户可以有多种角色
一个角色可以被多个用户使用
···用户与角色 ·-·-·-多对多的关系
一个角色可以有多个权限
一个权限可以被多个角色使用
···角色与权限 ·-·-·-多对多的关系
创建两张中间表:角色权限关系表(role_function)AND 用户角色关系表(user_role)
角色权限关系表:
-- 角色id --权限id
1 1
1 2
2 1
2 2
2 3
用户角色关系表
-- 用户id --角色id
1 1
2 1
2 2