`
tear
  • 浏览: 61004 次
  • 性别: Icon_minigender_2
  • 来自: 广西
社区版块
存档分类
最新评论

如何进行用户权限的菜单设计

阅读更多
写了这样一个权限管理:
1.用户登陆,根据用户提交信息从数据库中提取用户类型(admin,manager,operator),然后放到session里(在userController里写实现的方法);
2.用IF ESLE实现在菜单页根据获取的不同的用户类型显示不同的页面链接菜单(1."房间预定管理";2."顾客信息管理";3."房间信息管理";4."系统用户信息管理"),可以点击进入操作页面,进行相关的增加删除修改等操作.
比如:(1)admin,则显示1,2,3,4四个链接菜单;
     (2)manager,则显示1,2,3三个链接菜单;
     (3)operator,则仅显示1,2两个链接菜单;
这样似乎实现了所谓的权限管理,其实不然,因为即使你的身份不是管理员,而且没有链接菜单允许你访问系统用户页面,你也完全可以手动通过在地址栏里输入URL访问,这样也就谈不上什么权限管理了.

不知道大家有什么好的方法可以做到,既可以根据不同用户类型显示不同的链接菜单,又可以拦截非法的越权URL的访问?:)
分享到:
评论
25 楼 alloon 2007-04-10  
如果你用的是SERVLET+JSP的话,可以做个公用的MAINSERVLET然后所有的SERVLET都继承它,在它里面限制,如果你使用的是STRUTS的话,你可以在STRUTS-CONFIG.XML里加 入RequestProcess接口的扩展类拦截,要么,还基本是页面的显示,如果牵扯到逻辑方面的,你在做系统的时候可以考虑用户登陆后的管理权限都是通过它的权限接口实现功能,如ADMIN做个接口,manager一个接口,然后他们各自实现各自的方法业务,然后所有进行了登陆后才能让SPRING注入他们的对象进行业务操作,还有种方式是使用JOBSS公司的的一个DROOLS工具实现规则引擎实现,看你怎么实现更方便了!
24 楼 hbcui1984 2007-04-06  
刑天战士 写道
MM可以阅读一下《基于角色的权限控制》那篇文章,县有一个ROLE表,表示系统中的角色;还应该有一个Resource表,里面有各种各样的资源,对于MM来说是URL;然后由一个PERMISSION表,里面对应每个每个角色可以访问的资源;然后菜单就可以通过查询取出来……


我们的系统一般也是这么做的,单独做出一个权限管理模块出来,感觉还是挺方便的
23 楼 roc8633284 2007-04-05  
surroad 写道
有没朋友试过用interceptor解决session代码判断大量重复的?

通过实现interceptor过滤每个url,来判断用户登录后存在session的信息是否符合权限的需要,是个可行的办法。但是这种实现需要在interceptor实现类里实现大量的判断代码,有点不够智能。较好的办法还是要维护一个权限—角色对应表,再在interceptor实现类判断对应关系决定指向。
22 楼 lzmhehe 2007-04-05  
111111 写道
我们是自己写的一个标签库,在jsp页面根据用户权限显示不同的内容!



这种方法能防止 url注入么 ?
21 楼 hellen_love 2007-04-05  
基于角色的权限控制,这篇文章在哪?
20 楼 surroad 2007-02-05  
有没朋友试过用interceptor解决session代码判断大量重复的?
19 楼 shihukui 2007-02-02  
可以使用容器管理用户来做
18 楼 devilbaby 2007-02-02  
我这两三个月都在研究liferay portal,liferay的权限做得挺不错的,也有权限表,而且他的权限做得很细,楼主可以参考下他的思想
p.s.如果单单是想没让没有权限的人不能通过url直接访问,最简单的方法就是写个servlet,继承你application用的servlet,在service里面写判断,那就每次controller跳转都会根据你的检查再跳转
17 楼 ronghao 2007-02-02  
acegi确实可以很好的解决楼主的问题,说到底,也就是用filter拦截请求,然后判断权限。如果楼主的权限仅限于菜单权限,那自己写个filter就可以满足需要。如果想要更多,不如现在就用acegi,尽管它的配置文件让人恶心。
16 楼 tear 2007-02-02  
basicbest 写道
tear 写道
非常感谢大家!
似乎大家都提到一个用户权限表,对此不大能理解,因为这是我初次接触权限管理,如果大家有什么好例子,可不可以贴出来学习一下?
另外,我用的是SPRING框架.

TO wuyingsong:因为前不久看过lighter写的一篇AOP管理权限,所以我对你说的方法比较熟悉,于是我试着用了,但是不知道是不是我写错了哪里,总之URL没拦截成功.


权限表可以算是最基本的管理方式。
我不知道为啥用AOP管理权限。
这类技术问题最好同时说明你的应用场合,规模,基本架构或者基本的前端处理机制

我前面有提到一个业务代码的问题,如果你有这个,基本上就非常容易解决权限问题。而且,这个没有那些论文讨论的复杂。
因为它和你说明问题的时候用的方式一样,很自然。
你的问题中已经给出了权限管理的最好的解决方法

你看见自己写的1,2,3,4了吗,就在那里


今天会争取用这样的方法来解决,AOP的方法也不会放弃,希望今天最起码能用其中一种解决,然后安安心心回家过年去
15 楼 tear 2007-02-02  
hermitte 写道
tear 写道
非常感谢大家!
似乎大家都提到一个用户权限表,对此不大能理解,因为这是我初次接触权限管理,如果大家有什么好例子,可不可以贴出来学习一下?
另外,我用的是SPRING框架.

TO wuyingsong:因为前不久看过lighter写的一篇AOP管理权限,所以我对你说的方法比较熟悉,于是我试着用了,但是不知道是不是我写错了哪里,总之URL没拦截成功.

可以尝试用acegi来管理,那个配置稍微麻烦点,不过跟spring结合的非常好。
appfuse中有配置的方法


我之前搜索了JAVAEYE里有关acegi的资料,也尝试着用它来处理,但是配置出来的结果是抛出了这样的异常:
javax.servlet.ServletException: Bean context must contain at least one bean
网上寻找到的方法也解决不了,于是先放弃,等有时间再回头学习.
14 楼 hermitte 2007-02-02  
tear 写道
非常感谢大家!
似乎大家都提到一个用户权限表,对此不大能理解,因为这是我初次接触权限管理,如果大家有什么好例子,可不可以贴出来学习一下?
另外,我用的是SPRING框架.

TO wuyingsong:因为前不久看过lighter写的一篇AOP管理权限,所以我对你说的方法比较熟悉,于是我试着用了,但是不知道是不是我写错了哪里,总之URL没拦截成功.

可以尝试用acegi来管理,那个配置稍微麻烦点,不过跟spring结合的非常好。
appfuse中有配置的方法
13 楼 basicbest 2007-02-02  
tear 写道
非常感谢大家!
似乎大家都提到一个用户权限表,对此不大能理解,因为这是我初次接触权限管理,如果大家有什么好例子,可不可以贴出来学习一下?
另外,我用的是SPRING框架.

TO wuyingsong:因为前不久看过lighter写的一篇AOP管理权限,所以我对你说的方法比较熟悉,于是我试着用了,但是不知道是不是我写错了哪里,总之URL没拦截成功.


权限表可以算是最基本的管理方式。
我不知道为啥用AOP管理权限。
这类技术问题最好同时说明你的应用场合,规模,基本架构或者基本的前端处理机制

我前面有提到一个业务代码的问题,如果你有这个,基本上就非常容易解决权限问题。而且,这个没有那些论文讨论的复杂。
因为它和你说明问题的时候用的方式一样,很自然。
你的问题中已经给出了权限管理的最好的解决方法

你看见自己写的1,2,3,4了吗,就在那里
12 楼 tear 2007-02-01  
非常感谢大家!
似乎大家都提到一个用户权限表,对此不大能理解,因为这是我初次接触权限管理,如果大家有什么好例子,可不可以贴出来学习一下?
另外,我用的是SPRING框架.

TO wuyingsong:因为前不久看过lighter写的一篇AOP管理权限,所以我对你说的方法比较熟悉,于是我试着用了,但是不知道是不是我写错了哪里,总之URL没拦截成功.
11 楼 jeamzhang 2007-02-01  
LZ可以看看我门的实现!!我们是把用户对象放在Session中的,再在每个操作的Action(Struts)中的的方法[如:add()],中进行判断,如果没有权限就报错,有权限就可以操作!用户还可以自己定义角色,并进行授权!不知道LZ是用了什么框架,Struts很好处理的,JSF就比较困难了!有需要的话:jeamyong@gmail.com
10 楼 basicbest 2007-02-01  
XMLDB 写道
也许有人想把菜单显示和URL拦截合并在一起做,但是我认为这是不好的做法.我的做法是分别实现.实际上,如果系统设计比较完善的话,基本上能够复用大部逻辑


基本上没有不好,主要还是看应用的要求。
9 楼 Michael Jia 2007-02-01  
昨天我刚做了防止URL注入操作。在生成权限树菜单的时候,把权限缓存到ssession中。在增加一个filter或者interceptor,用户访问的时候将URI与session中的权限对比。这样也是可以做到的。
8 楼 刑天战士 2007-02-01  
MM可以阅读一下《基于角色的权限控制》那篇文章,县有一个ROLE表,表示系统中的角色;还应该有一个Resource表,里面有各种各样的资源,对于MM来说是URL;然后由一个PERMISSION表,里面对应每个每个角色可以访问的资源;然后菜单就可以通过查询取出来……
7 楼 XMLDB 2007-02-01  
也许有人想把菜单显示和URL拦截合并在一起做,但是我认为这是不好的做法.实际上,如果系统设计比较完善的话,基本上能够复用大部逻辑.我的做法是分别实现:根据权限选择菜单,不拦截URL,只在Service层用拦截器做权限控制.
6 楼 wuyingsong 2007-02-01  
你具体的权限控制全部写在权限拦截器public class AuthorityInterceptor implements MethodInterceptor{}里面,就OK了!

相关推荐

    用户权限管理菜单 用户权限管理菜单 用户权限管理菜单

    在实际的用户权限管理菜单设计中,可能会包含以下功能: - **登录验证**:用户在使用系统前需进行身份验证,根据登录账号分配对应的角色。 - **菜单权限控制**:根据用户角色动态生成显示的菜单,隐藏无权访问的...

    Shiro根据用户权限显示不同的菜单.Shiro根据权限显示指定菜单

    在这个场景中,我们关注的是如何利用Shiro实现根据用户权限动态显示不同的菜单。 首先,理解Shiro的核心概念是关键。在Shiro中,权限分为角色(Role)和权限(Permission)。角色是一组权限的集合,权限则具体描述...

    菜单权限设计

    3. **权限控制**:权限设计是菜单设计中的关键部分,通常包括角色和权限的概念。角色是一组预定义的权限集合,用户根据其职责被分配不同的角色。例如,管理员可能拥有所有权限,而普通用户则仅能访问特定功能。 4. ...

    用户角色菜单权限表结构创建以及数据插入

    用户菜单权限表建表语句以及数据插入语句,后台管理系统搭建必备,学习专用。 如果使用外键关联,在对表进行数据操作时就考虑另一张关联的表,相当于两张表就绑在一起了,操作这张表就必须考虑另一张关联表。我们...

    delphi 权限菜单 例程

    总的来说,理解并应用Delphi的权限菜单设计是提升软件安全性的重要一步。通过对用户权限的合理控制,开发者可以创建出更加安全、易用的应用程序。希望这个例程能帮助你快速上手,并激发你在Delphi编程中的创造力。

    角色用户权限DB设计

    一直想整理一篇关于用户角色权限的设计,这几天通过网上资料和自己实际工作中运用到的资源把用户角色权限的数据库表设计出来。 基础表有3张: 角色表--用来记录角色名称 用户表--用来记录登录用户名称和登录密码 ...

    C# WinForm实现基于角色权限的菜单

    在C# WinForm应用开发中,构建一个基于角色权限的菜单是常见的需求,尤其是在企业级应用中,确保不同用户群体只能访问他们被授权的操作。这个项目利用Visual Studio 2008或更高版本来实现这样的功能,展示了如何将...

    JAVA用户、角色、权限、菜单、工作流管理系统

    目前系统已经基本集成的功能包含有,用户管理,角色管理,菜单管理,组织管理,数据字典,日志管理,接口管理(暂时未完成实际应用),流程配置,运行流程管理,消息管理(暂无实际应用),业务模块没有做。后台是基于...

    C# WinForm角色的权限菜单-源码.zip

    "C# WinForm角色的权限菜单-源码.zip"提供了一个实现基于角色的权限菜单功能的完整解决方案,适合那些需要在Windows桌面应用程序中进行权限控制的开发者。下面我们将详细探讨这个主题。 1. **角色权限设计**: ...

    spring boot+shiro+mybatis实现不同用户登录显示不同的权限菜单

    本项目通过集成这三个工具,能够根据用户的登录身份展示不同的权限菜单,确保了用户只能访问他们被授权的功能。 **Spring Boot** Spring Boot是基于Spring框架的快速开发工具,它简化了配置并提供了“开箱即用”的...

    C# winform 权限控制 包括角色 用户 权限设置

    如果用户没有某个功能的权限,那么对应的菜单项就不显示。这可以通过在后台查询用户的角色,然后获取角色所包含的权限来实现。 **5. 权限检查** 在每个需要权限控制的方法或事件处理程序中,添加权限检查代码。...

    一款自己写的.net菜单权限源码

    【标题】:“一款自己写的.net菜单权限源码”揭示了这个项目的核心——它是一个使用.NET框架实现的菜单和权限...通过深入研究源码,可以学习到数据库设计、.NET编程以及如何将两者结合来实现用户权限管理的宝贵经验。

    ssh做的简单菜单权限管理

    在本项目中,数据库设计可能包括用户表、角色表、菜单表和权限表等。其中,用户表存储用户信息,角色表定义不同权限的角色,菜单表记录系统的各级菜单,权限表关联角色和菜单,表示角色可以访问哪些菜单。 【SQL...

    C#遍历菜单并设置权限

    本文将详细介绍如何利用C#实现菜单权限控制,包括数据库设计、数据操作以及具体的编程实现。 #### 一、数据库设计与数据操作 **1. 创建数据表** 为了存储菜单权限信息,首先需要创建一个数据表`t_...

    通用权限管理设计篇 权限管理设计

    在数据库设计中,通常使用关联表来处理多对多关系,例如用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联表和用户属组关联表等。这样的设计能够支持权限管理的灵活性和扩展性。 在数据库...

    Easyui+ashx权限菜单权限管理框架

    "Easyui+ashx权限菜单权限管理框架"是一个结合了前端Easyui框架和后端ashx处理程序的解决方案,用于实现用户权限控制和菜单管理。下面将详细介绍这个框架的关键知识点。 1. Easyui:Easyui是一个基于jQuery的UI库,...

    根据用户初始化菜单权限

    在IT领域,特别是软件开发与系统管理中,用户权限与菜单显示逻辑是实现系统安全性和个性化体验的关键环节。本文将围绕“根据用户初始化菜单权限”这一主题,深入探讨其背后的原理、实现方法以及代码示例,帮助读者...

    java用户角色权限设计

    在企业级应用中,用户角色权限设计是至关重要的环节,尤其是在B/S架构的系统中,因为用户权限检测不能仅依赖于客户端,必须有一套完整且严密的权限检测机制,以确保只有授权用户才能访问特定功能。本文将深入探讨...

    RBAC用户角色权限设计方案

    3. **动态授权**:RBAC支持动态地给用户分配或取消角色,这意味着用户的权限可以根据实际需求进行调整。 4. **用户组的概念**:为了进一步简化权限管理,RBAC还引入了用户组的概念。用户可以被加入到用户组中,然后...

    菜单按钮权限管理系统

    我权限项目分为上左右三部分,5张表:用户表,角色表,资源表(分为权限树,还有页面的按钮资源),用户角色中间表,角色资源中间表。通过登陆用户id联查可以得到相应的权限,展现给用户!并将该用户的资源权限保存...

Global site tag (gtag.js) - Google Analytics