用户角色权限 这个谁来给讲一下!! 最近面试问这个问题,我一直回答不到点子上,数据库怎么设计,怎么用到拦截器? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需要五张表:A.角色表,存放各种角色信息B.用户表,存放用户信息C.权限表,存放相关权限信息D.角色权限关系表,存放各种角色和权限之间的关系,即每种角色都有什么权限,一个角色可以有多种权限E.用户角色关系表,存放用户和角色关系,即每个用户都是那种角色,一个用户可以有多个角色。这就是数据库需要的基本数据表。程序中拦截器拦截到用户的某个操作后,通过用户信息查询其角色,然后通过角色查询是否具有每种权限,如果有就放行,没有就阻断。 你这个 我直接给你个我们以前设计的系统表好了/** * 角色Entity */@Entity@Table(name = "main_role")@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)public class Role extends BaseEntity { private static final long serialVersionUID = 1L; private Long id; // 编号 private String name; // 角色名称 private String delFlag; // 删除标记(0:正常;1:删除) private List<User> userList = Lists.newArrayList(); // 拥有用户列表 private List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表 public Role() { this.delFlag = DEL_FLAG_NORMAL; } public Role(Long id, String name) { this(); this.id = id; this.name = name; }}/** * 菜单Entity */@Entity@Table(name = "main_menu")@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)public class Menu extends BaseEntity { private static final long serialVersionUID = 1L; private Long id; // 编号 private Menu parent; // 父级菜单 private String parentIds; // 所有父级编号 private String name; // 名称 private String href; // 链接 private String target; // 目标( mainFrame、_blank、_self、_parent、_top) private String icon; // 图标 private Integer sort; // 排序 private String isShow; // 是否在菜单中显示(1:显示;0:不显示) private String permission; // 权限标识 private String delFlag; // 删除标记(0:正常;1:删除) private List<Menu> childList = Lists.newArrayList();// 拥有子菜单列表 private List<Role> roleList = Lists.newArrayList(); // 拥有角色列表}/** * 角色Entity */@Entity@Table(name = "main_role")@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)public class Role extends BaseEntity { private static final long serialVersionUID = 1L; private Long id; // 编号 private String name; // 角色名称 private String delFlag; // 删除标记(0:正常;1:删除) private List<User> userList = Lists.newArrayList(); // 拥有用户列表 private List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表看上面3个JAVA类(省略了GET/SET 方法),然后看Role.javaprivate List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表拥有菜单 就表示拥有权限,比如用户在登入系统的时候,取出该用户所有的菜单(权限),然后二级缓存存起来, 当我们发送请求的时候,通过Filter看看二级缓存中用户有没有这个权限莫有的话,,,,直接 foword一个页面 提示 权限不够 链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。 拦截器,在web.xml里面是怎么配置的?有代码例子吗? 链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器? 链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter --><filter><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter的实现类 --><filter-class>lee.AuthorityFilter</filter-class><!-- 下面3个init-param元素配置了3个参数 --><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter><!-- 定义Filter拦截的URL地址 --><filter-mapping><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter负责拦截的URL --><url-pattern>/*</url-pattern></filter-mapping> 链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter --><filter><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter的实现类 --><filter-class>lee.AuthorityFilter</filter-class><!-- 下面3个init-param元素配置了3个参数 --><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter><!-- 定义Filter拦截的URL地址 --><filter-mapping><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter负责拦截的URL --><url-pattern>/*</url-pattern></filter-mapping>这个拦截器的类有具体代码吗?谢谢,辛苦了!!! Filter配置 在web.xml 这样写<filter><!--这里写名字--><filter-name>log</filter-name><!--这里写实现类--><filter-class>lee.Security</filter-class></filter><filter-mapping><!--这里写名字--><filter-name>log</filter-name><!--那些URL要拦截 这里都配置成都要拦截--><url-pattern>/*<url-pattern><filter-mapping>Filter这样子写public class Security implements Filter{ //实现其方法 OK了} 链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter --><filter><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter的实现类 --><filter-class>lee.AuthorityFilter</filter-class><!-- 下面3个init-param元素配置了3个参数 --><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter><!-- 定义Filter拦截的URL地址 --><filter-mapping><!-- Filter的名字 --><filter-name>authority</filter-name><!-- Filter负责拦截的URL --><url-pattern>/*</url-pattern></filter-mapping>这个是过滤器哦 有兴趣看看这个http://blog.csdn.net/tianma630/article/details/8461339本人写的一个小例子 希望对你有帮助 dhtmltree采用生成好的字符串加载生成树?无法正确加载xml字符串? 对于使用HTML:FILE上传时出现的问题 怎么用hibernate实现检索一个对象的部分属性的功能呢? jsp动态显示图片 在集群中使用计划任务调度的问题 关于date数据类型的问题 急死人了,文本框内容匹配? 刚刚刚学JSP,请各位帮忙 Springmvc 乱码问题,很奇怪 在jsp页面里多刷新几次,就出错了,是为什么了 JSP页面中利用dtree动态显示map数据 求一个bbs项目 jsp写的 mysql的数据库
A.角色表,存放各种角色信息
B.用户表,存放用户信息
C.权限表,存放相关权限信息
D.角色权限关系表,存放各种角色和权限之间的关系,即每种角色都有什么权限,一个角色可以有多种权限
E.用户角色关系表,存放用户和角色关系,即每个用户都是那种角色,一个用户可以有多个角色。这就是数据库需要的基本数据表。程序中拦截器拦截到用户的某个操作后,通过用户信息查询其角色,然后通过角色查询是否具有每种权限,如果有就放行,没有就阻断。
* 角色Entity
*/
@Entity
@Table(name = "main_role")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Role extends BaseEntity { private static final long serialVersionUID = 1L;
private Long id; // 编号
private String name; // 角色名称
private String delFlag; // 删除标记(0:正常;1:删除) private List<User> userList = Lists.newArrayList(); // 拥有用户列表
private List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表 public Role() {
this.delFlag = DEL_FLAG_NORMAL;
} public Role(Long id, String name) {
this();
this.id = id;
this.name = name;
}
}
/**
* 菜单Entity
*/
@Entity
@Table(name = "main_menu")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Menu extends BaseEntity { private static final long serialVersionUID = 1L;
private Long id; // 编号
private Menu parent; // 父级菜单
private String parentIds; // 所有父级编号
private String name; // 名称
private String href; // 链接
private String target; // 目标( mainFrame、_blank、_self、_parent、_top)
private String icon; // 图标
private Integer sort; // 排序
private String isShow; // 是否在菜单中显示(1:显示;0:不显示)
private String permission; // 权限标识
private String delFlag; // 删除标记(0:正常;1:删除)
private List<Menu> childList = Lists.newArrayList();// 拥有子菜单列表
private List<Role> roleList = Lists.newArrayList(); // 拥有角色列表
}
/**
* 角色Entity
*/
@Entity
@Table(name = "main_role")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Role extends BaseEntity { private static final long serialVersionUID = 1L;
private Long id; // 编号
private String name; // 角色名称
private String delFlag; // 删除标记(0:正常;1:删除) private List<User> userList = Lists.newArrayList(); // 拥有用户列表
private List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表看上面3个JAVA类(省略了GET/SET 方法),然后看Role.javaprivate List<Menu> menuList = Lists.newArrayList(); // 拥有菜单列表拥有菜单 就表示拥有权限,比如用户在登入系统的时候,取出该用户所有的菜单(权限),然后二级缓存存起来, 当我们发送请求的时候,通过Filter看看二级缓存中用户有没有这个权限莫有的话,,,,直接 foword一个页面 提示 权限不够
链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查
我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。
如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。
拦截器,在web.xml里面是怎么配置的?有代码例子吗?
链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查
我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。
如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?
链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查
我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。
如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter的实现类 -->
<filter-class>lee.AuthorityFilter</filter-class>
<!-- 下面3个init-param元素配置了3个参数 -->
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!-- 定义Filter拦截的URL地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter负责拦截的URL -->
<url-pattern>/*</url-pattern>
</filter-mapping>
链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查
我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。
如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter的实现类 -->
<filter-class>lee.AuthorityFilter</filter-class>
<!-- 下面3个init-param元素配置了3个参数 -->
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!-- 定义Filter拦截的URL地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter负责拦截的URL -->
<url-pattern>/*</url-pattern>
</filter-mapping>
这个拦截器的类有具体代码吗?谢谢,辛苦了!!!
<!--这里写名字-->
<filter-name>log</filter-name>
<!--这里写实现类-->
<filter-class>lee.Security</filter-class>
</filter>
<filter-mapping>
<!--这里写名字-->
<filter-name>log</filter-name>
<!--那些URL要拦截 这里都配置成都要拦截-->
<url-pattern>/*<url-pattern>
<filter-mapping>Filter这样子写public class Security implements Filter{
//实现其方法 OK了
}
链接地址,你怎么控制它的菜单以及菜单里面 报表的增删改查
我觉得一楼这个方法不好,因为如果连跳转的页面url都放在数据库,那么这对数据库的请求也太频繁了吧。
如果要我说,首先用户表要有相应的字段表示权限,如0,1,2……在拦截器Filter里面,记录各种权限不同的用户分别有哪些页面不能进入的,因为在大多数情况下,只有少部分页面是有权限限制的。那么就可以通过这个Filter进行过滤了。怎么配置拦截器?你说的是在web.xml中配置拦截器吗?下面的典型的例子:<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter的实现类 -->
<filter-class>lee.AuthorityFilter</filter-class>
<!-- 下面3个init-param元素配置了3个参数 -->
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!-- 定义Filter拦截的URL地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>authority</filter-name>
<!-- Filter负责拦截的URL -->
<url-pattern>/*</url-pattern>
</filter-mapping>
这个是过滤器哦
本人写的一个小例子 希望对你有帮助