锁定老帖子 主题:用户,角色,权限常用实现方法
精华帖 (0) :: 良好帖 (1) :: 新手帖 (7) :: 隐藏帖 (0)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-11
最后修改:2009-01-11
用户,角色,权限常用实现方法 数据库表形式
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-11
最后修改:2009-01-11
实现代码!
import java.util.Set; public class UserVo { private Integer id; private String uname; private String password; private Level level; public Level getLevel() { return level; } public void setLevel(Level level) { this.level = level; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } public class Level { private Integer id; private String levelName; private Set<Quanxian> qx = new HashSet<Quanxian>(0); public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLevelName() { return levelName; } public void setLevelName(String levelName) { this.levelName = levelName; } public Set<Quanxian> getQx() { return qx; } public void setQx(Set<Quanxian> qx) { this.qx = qx; } } public class Quanxian { private Integer id; private String quanxian; private Integer fatherid; private String url; public Integer getFatherid() { return fatherid; } public void setFatherid(Integer fatherid) { this.fatherid = fatherid; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getQuanxian() { return quanxian; } public void setQuanxian(String quanxian) { this.quanxian = quanxian; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } public class AdminLoginCheck extends HttpServlet implements Filter { //通过 一个过滤器 Filter 进行权限控制 private FilterConfig filterConfig; //Handle the passed-in FilterConfig public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } //Process the request/response pair public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {//System.out.println(this.getClass()+": doFilter()"); HttpServletRequest req = (HttpServletRequest)request; //System.out.println(req.getServletPath()); HttpServletResponse res = (HttpServletResponse)response; HttpSession ses = req.getSession(); Uservo uervo =ses.getAttribute("user") try {//System.out.println("in Adminloginf........"); if(uervo ==null) { res.sendRedirect(req.getContextPath()); }else{ Boolean allow= false ; Set<Quanxian> qxs = uservo.getLevel().getQx(); For(Quanxian o:qxs){ If(o.getUrl().equals(req.getServletPath())){ allow=true; } } If(allow){ filterChain.doFilter(request, response);} } } catch (ServletException sx) { filterConfig.getServletContext().log(sx.getMessage()); } catch (IOException iox) { filterConfig.getServletContext().log(iox.getMessage()); } } //Clean up resources public void destroy() { } } |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-12
最简单的权限设计方式,不过还是要支持一下。另外您的名字太过了
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-12
最后修改:2009-01-12
xuyao 写道 最简单的权限设计方式,不过还是要支持一下。另外您的名字太过了
关于名字 Rod Johnson 是我的偶像 我本来以为有人已经注册了 可发现没人用 所以就用了!哈哈 关于权限 我希望能有高手把它抽像成非侵入框架 让后通过简单的配置就可以使用那样就方便多了! |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-12
很平常的方法。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-01-12
看到多角色多权限我就想着用二进制的位运算的方式实现。。。
可能这是用C用出来的后遗症:不遗余力的改进算法,提升性能。。。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-02-18
我就是看到rod johnson才进来看的
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-02-18
很常见的方法,还有,如果还要加一个工作组的话要复杂很多
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-02-18
已经老掉牙了
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-02-19
应该去掉权限的概念 新加一个资源的概念
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||