`
daitiejian
  • 浏览: 4730 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

大家来讨论一下Acegi的Web权限部分怎么设计

阅读更多

需求说明:控制动态系统菜单, 控制页面按钮权限, 角色30个左右  用户300左右。 菜单100个以上。 页面800个以上.

授权操作人员为客户。

由于客户不会有很多的专业知识,所以授权要比较的方便。

我的想法是做成下面的样子:(见图)

资源表的设计有以下几个字段:主键、 资源Code、 资源名、父资源ID、  资源Url、   资源Type、   扩展Url .

其中资源Type有: 菜单类型 跟 其他资源类型  (等扩展). 

 资源是树形结构。 其他资源类型必须跟在菜单类型下面。

授权的时候 菜单类型的对应图中的树型节点(粗体). 其他资源类型的对应树中的小体部分

动态菜单实现。   根据权限即 用户角色  取出 有权限 菜单类型 的资源 组成菜单树。

页面按钮权限。  标签实现。 标签绑定 其他资源类型 的资源 的 code.  根据用户角色 即授权判断是否显示。

在菜单中不体现的页面的权限控制:  根据扩展Url字段.  在新增资源的时候, 一个资源可以绑定很多的扩展Url .。  这些Url 被授予对应资源一样的权限(需要有一样的角色才能访问)。 (由于这个URL授权客户不太可能清楚  所以采用绑定的方式)。怎么绑定法呢? 一个菜单对应的页面 可能有很多链接 可以链接到别的页面 这些页面不再菜单体现  又要控制权限就采取绑定这个菜单的方式。 按钮也可以绑定扩展Url,应为按钮点击以后可以进入到一些新的页面。 防止直接输入URL的方法进入。

 

不知道大家有没有过这种需求, 希望我讲的大家能听懂  谢谢。 大家给点意见

  • 描述: 授权
  • 大小: 19.2 KB
分享到:
评论
5 楼 sg552 2007-06-04  
动态的权限分配,是我上两个星期,前前后后的调试加到一起,大概60个小时吧。
而且是别人设计好,我只负责代码的实现。(所以到现在我对我弄的东西也有点雾水)

说一下现在我们系统遇到的麻烦:

1. url不规范。 
   如:  cm/post.view    对应管理员
         cm/list.view    对应一般用户,

   那么这里使用Acegi的URL授权就很不好写。

2. 由于使用了动态的URL授权,所以每个URL都要给每个角色授权一下。很墨迹。例如Acegi本来的配置,应该是这样:
   /admin/**    对应 admin
   /**          对应 anonymous

现在我们的系统要这样:
   /admin/**    对应 admin
   /**          对应 admin
   /**          对应 anonymous

哎。现在3个角色, 32个URL, 弄的动态配置的POJO就好多数据。


3. 有时候会出现莫名其妙的问题。可能是修改了 Acegi的塬代码,也有可能是Acegi与Hibernate的配合出了问题?更有可能是我们对Acegi与Hibernate理解的都不深刻?  有时候会莫名其妙的Access Denied, 有时候又莫名其妙的好了。 不知道怎么回事。还有的时候,对URL记录的读的顺序有要求。晕啊。


最后一点意见: 对Acegi的使用,我的建议是:
1. 按照Acegi的官方意见,在Demo的基础上改
2. 不要使用动态权限的思想。这个在一开始程序设计上就要避免
3. url 在一开始就要有合适的命名。如 /admin/**  一定对应admin角色,  等等。

说的不好,欢迎各位朋友指点!
4 楼 sg552 2007-06-04  
我最近正在做LZ说的东西。
用Acegi实现动态的权限管理。使用hibernate. 我们是建立了  Url n:n  Role  1:1  User 三个POJO。

现在已经实现,正在使用。

不过问题多多。主要是设计的思路与Acegi的思路不一样。

Acegi的思路应该是,url都是固定的。角色从一开始就不是通过前台来控制的。

现在把Acegi改的面目全非,系统用起来,URL与权限纷繁复杂,甚至修改Acegi的人员都不知道新的权限分配怎么用。


在JDON看到某前辈说:见到的设计的好的系统,都是技术上不复杂的。虽然,但是最近对这句话真是深有体会!

3 楼 daitiejian 2007-06-04  
wumingsx 写道
你的树形状菜单用什么做的,struts_menu?


自己写标签。 struts_menu没用过
2 楼 wumingsx 2007-06-04  
你的树形状菜单用什么做的,struts_menu?
1 楼 lighter 2007-05-31  
可以看一下白衣在springside权限控制方面做的工作
感觉还可以
ps:acegi的配置文件实在多了一些....

相关推荐

    acegi实现用户权限

    标题中的“acegi实现用户权限”指的是在Java Web开发中使用Acegi Security框架进行权限管理的技术。Acegi Security是Spring框架的一个扩展,它提供了一套完整的安全解决方案,用于控制应用程序的访问权限。在这个...

    acegi_help.zip_Help!_acegi

    _acegi"压缩包显然包含了有关如何配置和使用Acegi Security的重要资源,对于那些在Spring框架基础上构建Web应用并寻求安全保障的开发者来说,是非常有价值的参考资料。 "实战Acegi:使用Acegi作为基于Spring框架的...

    struts web 权限 角色

    在Web应用程序中,权限管理和角色控制是非常关键的部分,它们确保只有授权的用户才能访问特定的资源或执行特定的操作。下面将详细讨论Struts中关于权限和角色的实现方式。 一、Struts的权限控制基础 1. **...

    acegi 使用说明

    接下来,我们讨论Acegi安全文件的配置: 1. 过滤链(FILTER CHAIN):`FilterChainProxy`按照预定义的顺序调用过滤器,每个过滤器都有特定的任务,例如,`ChannelProcessingFilter`处理HTTP和HTTPS之间的切换,`...

    收集的一些ACEGI 资料

    收集的ACEGI资料可能包括用户手册、教程、示例代码和社区讨论,这些都能帮助开发者理解和掌握ACEGI的使用方法,从而在实际项目中实现高效的安全管理。 综上所述,ACEGI Security是一个强大的Java安全框架,它为...

    使用 Acegi 保护 Java 应用程序: 续二

    下面我们将详细讨论 Acegi 的核心概念和使用方法,以及与给定文件相关的知识点。 首先,Acegi 提供了一个全面的安全模型,包括身份验证(Authentication)和授权(Authorization)。身份验证是确认用户身份的过程,...

    Acegi最新版(v1.0.4)中文参考手册.rar

    9. **国际化与本地化**:如果手册包含这部分,可能会讨论如何使Acegi适应多语言环境。 10. **最佳实践与示例**:提供实际项目中的应用案例和推荐的使用方式,帮助开发者更好地理解和应用Acegi。 11. **API参考**:...

    spring2 struts2 acegi

    Struts 2则是一个基于MVC设计模式的Java Web框架,它整合了WebWork和Struts 1的优势,提供了一种强大的、可扩展的和灵活的方式来构建动态Web应用。Struts 2的核心功能包括动作调度、视图渲染、数据绑定、异常处理等...

    使用 Acegi 保护 Java 应用程序: 续一

    Acegi 提供了一种灵活且强大的方式来管理用户权限、会话、登录和授权等安全相关任务。 本篇文章是“使用 Acegi 保护 Java 应用程序”系列的续篇,旨在深入探讨 Acegi 的使用方法。在前一篇文章中,我们可能已经介绍...

    WebService权限

    开发者可能会使用Spring Security(以前称为Acegi Security)等框架,结合Java EE的安全机制,如Servlet容器的角色和权限管理,来控制Web服务的访问。源码中可能包含角色的定义、访问规则的配置以及身份验证和授权...

    acegi(Spring Security) 参考手册

    最后,手册会讨论一些高级主题,如CSRF(跨站请求伪造)防护、XSS(跨站脚本)防护、SQL注入防御,以及如何与其他Spring模块(如Spring MVC、Spring WebFlow)集成。同时,手册还会提供一些最佳实践和常见问题的解决...

    现基于Spring框架应用的权限控制系统

    本文将详细讨论如何在基于Spring框架的应用中实现权限控制系统,重点介绍Acegi安全框架的使用及其在权限管控方面的解决方案。 首先,我们要了解Spring框架的核心特点。Spring框架通过控制反转(IoC)和面向切面编程...

    struts + spring + hibernate + velocity + ajax + jotm + acegi

    Struts、Spring、Hibernate、Velocity、Ajax、JOTM 和 Acegi 是一组常见的技术栈,它们在构建企业级Java Web应用程序时发挥着关键作用。这些技术各有专长,结合使用可以构建出高效、灵活且安全的系统。接下来,我们...

    SpringAcegiTutorial.rar

    1. **Acegi/Spring Security简介**:介绍Acegi(现为Spring Security)的基本概念,包括它的功能、设计理念以及如何为Spring应用添加安全层。 2. **安装与配置**:讲解如何在Spring项目中引入Acegi,配置安全设置,...

    Java ssh 权限系统 开发视频教程 第08讲(超清版).mp4

    Java SSH权限系统开发是Java企业级应用中一个重要的部分,主要涉及到Spring、Struts和Hibernate这三个框架的集成使用。在本视频教程的第08讲中,我们将深入探讨如何构建和实现一个完整的权限管理系统。 首先,...

    Java ssh 权限系统 开发视频教程 第17讲(超清版).mp4

    总的来说,这第17讲Java SSH权限系统开发视频教程将帮助开发者理解如何在SSH框架下实现一个安全的权限管理系统,涵盖了身份验证、授权、角色和权限的设计以及它们在实际项目中的应用。通过学习这些内容,开发者可以...

    Spring Security(Spring安全权限管理手册) PDF

    其前身Acegi在权限管理方面已经享有盛誉,因此Spring Security在发布之初便受到了极大的关注。 - **优势分析**: - **全面性**:Spring Security支持多种安全功能,如认证、授权等。 - **与Spring框架的高度集成**...

    http://www.blogjava.net/youlq/archive/2005/12/06/22678.html

    结合标签“源码”和“工具”,我们可以推测这篇文章主要探讨的是如何通过Acegi安全框架来增强Spring Web应用程序的安全性,并可能涉及到源代码级别的解析和实践操作。 Acegi是Spring Security的前身,它是一个为...

    Spring Security 安全权限管理手册

    1. **强大的背景**:Spring Security 最初被称为 Acegi,后于 2.0 版本成为 Spring 框架的一部分。这意味着它拥有来自 Spring 社区的强大支持和技术保障。 2. **丰富的功能集**:Spring Security 支持多种安全机制...

    基于SSH的在线Java程序设计学习平台。学生管理系统(其主要内容包括用户的注册、不同用户身份验证登录、信息维护.zip

    Struts可以配合Spring Security(以前称为Acegi)实现登录页面和权限控制。Spring Security提供了认证和授权服务,可以根据用户角色分配不同的访问权限。在学生管理系统中,可能有学生、教师和管理员等多种用户角色...

Global site tag (gtag.js) - Google Analytics