`
heaven.robin
  • 浏览: 30203 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

acegi+ssh动态实现基于角色的权限管理(五)

阅读更多
 AuthenticationPostUpdateListenerEvent code:

/**
 * @author 叶天兵
 */
@SuppressWarnings("serial")
public class AuthenticationPostUpdateListenerEvent implements
  PostUpdateEventListener {
 private UpdateAcegiCache updateAcegiCache;

 /**
  * @param updateAcegiCache 要设置的 updateAcegiCache
  */
 public void setUpdateAcegiCache(UpdateAcegiCache updateAcegiCache) {
  this.updateAcegiCache = updateAcegiCache;
 }
 /**
  * 修改RBAC操作时,修改AcegiCache
  */
 public void onPostUpdate(PostUpdateEvent updateEvent) {
  // TODO 自动生成方法存根
  Object obj = updateEvent.getEntity();
  
  //如果修改User,就修改userCache
  if(obj instanceof Users){
   Users user = (Users) obj;
   updateAcegiCache.modifyUserInCache(user, user.getUserName());
  }
  
  //修改Authorities时修改resourceCache
  if(obj instanceof Authorities){
   Authorities auth = (Authorities) obj;
   updateAcegiCache.modifyAuthritiesInCache(auth, auth.getAuthProtected());
  }
  
  //修改Role 时修改userCache和resourceCahce
  if(obj instanceof Role){
   Role role = (Role) obj;
   updateAcegiCache.modifyRoleInCache(role, role.getRoleName());
  }
 }

}

hibernateEvent对数据的操作进行监听,在修改users,role,authorities时,修改userCache和resourceCache实现其动态更新.PostInsertEventListener,PostDeleteEventListener同理.
 
跟踪了一下控制台信息,当transaction执行commit的操作之后,eventListener才执行其操作,这样就保证了更新数据表之后,立即更新user,和resource的缓存信息.
 
最后login.jsp

   <form action="check" method="post">
  <table width="513" border="0" cellpadding="0" cellspacing="0">
  <tr>
   <td colspan="3" align="center" height="15">
   ${ACEGI_SECURITY_LAST_EXCEPTION.message}
   </td>
  </tr>
    <tr>
      <td width="139" rowspan="2">&nbsp;</td>
      <td width="157" height="30">
   <input type="text" name="j_username" value="${ACEGI_SECURITY_LAST_USERNAME }"
    size="18" height="15" tabindex="1"/>   </td>
       <td width="217" rowspan="2">
    <input type="submit" name="submit" value="登录"nbsp;&nbsp;
    <input type="reset" name="reset" value="重写"</td>
    </tr>
    <tr>
      <td height="30">
   <input type="password" name="j_password" >    

 </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td height="21" align="left">
     <input type="checkbox" name="rememberMe">
   <font color="#FFFFFF">两周后不登录</font>
     </td>
      <td>&nbsp;</td>
    </tr>
   </table>
   </form>

 
excuse me to write blog first time,so it's  very badly.
and introduce 2 website to study spring:
and also,i often study many knowledge from javaeye,like openSessionInView
分享到:
评论
12 楼 xutao5641745 2010-09-17  
robin你好,方便给份源码吗?我的邮箱是onlyboor@163.com,我水平有限!
11 楼 yy2064 2008-10-29  
我在google论坛里下了,可惜没有jar包,搞了几天都没搞好,
水平太差,望大哥将系统源码与JAR包一并发一下,谢谢!
yy2064@163.com
10 楼 simpleqq 2008-08-30  
方便给份源码吗?我邮箱是wenzhi057@163.com谢谢!
9 楼 heaven.robin 2008-08-17  
下载地址:
http://www.namipan.com/d/66a37a2ac1c4b19af345a99fa892e617d57fe47eaf2a8801

数据库是mysql5, runsa db为数据库备份文件,用mysql 的Navicat 工具恢复.
8 楼 alun 2008-08-06  
google的那个地址现在下不了了,给份源码好吗
alun_one@163.com
谢谢!
7 楼 kenchen0805 2008-07-13  
由于没有lib jar包和数据库文件,运行不起来,能发份源码我学习一下吗?谢谢 kenchen0805@163.com
6 楼 kenchen0805 2008-07-13  
robin你好!
5 楼 StarOff 2008-06-30  
搞了一天,程序貌似起来了,可惜没有数据。。。
请问.psc文件由什么打开,里面是些什么?
谢谢!
4 楼 StarOff 2008-06-29  
现在开始学习acegi这方面的知识,正好看到博主的这一系列文章。非常感谢!
我在google论坛下载了源码,但是没有jar包,搞了好久都运行不起来。并且数据库的数据是些什么数据? 能不能列一下用了些什么包,什么版本?邮箱 shannon810808@163.com 不胜感激!!
3 楼 heaven.robin 2008-04-23  
我放在google论坛里了,http://groups.google.com/group/open_java,可以去这里下载,谢谢
2 楼 shijian0306 2008-04-20  
哥们,我也是,始终做不成功.方便给份源码吗?

邮箱:shijian0306@163.com

十分感谢!!!
1 楼 datana 2008-01-08  
robin你好!

      最近正在自己写一个应用系统,权限这部分不知道怎么处理才是最佳实现,然后就研

究acegi了,看过你这篇文章,因为接触spring时间不长,所以你这篇文章只是看懂个大

概。 按照你的步骤一步一步的照着copy下来,但问题很多。

所建的那几个表里有什么数据?

方便给份源码吗?我邮箱是hero_yupai@hotmail.com谢谢!

水平所限,见笑了!

相关推荐

    acegi+ssh动态实现基于角色的权限管理

    ### acegi+SSH动态实现基于角色的权限管理 在企业级应用开发中,权限管理和用户认证是必不可少的安全机制。本文将详细介绍如何利用Acegi安全框架(现称为Spring Security)结合SSH(Struts + Spring + Hibernate)...

    Acegi + Spring + Hibernate + Struts 2搭建基于角色的权限控制系统

    Acegi(现已被Spring Security替代)是一个强大的安全框架,可以与Spring、Hibernate和Struts 2等其他技术结合,实现基于角色的权限控制(Role-Based Access Control, RBAC)。这篇文档将探讨如何使用Acegi,以及SSH...

    SSH+Extjs4 0实现的权限管理系统 基于角色的权限设计

    《SSH+Extjs4.0实现的权限管理系统:基于角色的权限设计》 在IT行业中,权限管理系统是保障系统安全性和数据隐私的关键组件。本文将深入探讨如何利用SSH(Spring、Struts2、Hibernate)框架结合Extjs4.0前端库,...

    Acegi + Spring + Hibernate + Struts2搭建

    通过基于角色的权限控制,我们可以有效地管理用户的访问权限,提高系统的整体安全性。虽然Acegi Security已不再维护,但其思想和模式在现代的Spring Security中得到了延续和增强,继续为开发者提供安全框架的支持。

    velocity+ssh2+分页+权限

    通过配置Spring Security,可以实现基于角色的访问控制,限制不同角色用户的操作范围。同时,这些权限信息可以在Velocity模板中动态地显示或隐藏相应的内容。 【数据库自动生成】 在开发过程中,有时需要快速生成...

    acegi结合ssh实用列子

    Acegi Security System for Spring(简称Acegi)是Spring框架的一个扩展,它为Spring应用程序提供了全面的安全管理解决方案。在本示例中,我们将深入探讨如何将Acegi与Struts、Hibernate(SSH)这三大主流Java Web...

    FLEX+SSH某水源检测系统完整代码(带登录界面权限控制)

    在权限管理方面,Spring的Acegi安全模块(现已被Spring Security取代)可以用来实现用户的认证和授权。 Hibernate3是一个持久化框架,用于简化Java对象与数据库之间的映射关系。在这个系统中,Hibernate可能是用来...

    ssh集成的权限管理板块

    Spring Security可以与Hibernate配合,通过JDBC或ORM方式进行数据访问,实现用户、角色和权限的动态加载和管理。 在权限管理中,用户角色是一组预定义的权限集合,用户被赋予不同的角色,从而获得相应的操作权限。...

    ssh写的用户登录权限实现

    在本场景中,"ssh写的用户登录权限实现"指的是使用SSH协议来控制用户登录的权限,确保在同一时间只有一个用户能够使用特定的账号登录系统。这种机制可以防止未经授权的并发登录,增加系统的安全性。 Struts2、...

    java ssh框架权限管理系统

    在SSH框架下,这部分功能可以通过Spring Security(原名Acegi Security)来实现,它可以提供角色和权限的管理,以及基于URL的访问控制。 在给定的压缩包文件中,"work 20120114 1426.sql"可能是数据库的备份文件,...

    ssh集成的实现了权限,员工部门

    这个标题"ssh集成的实现了权限,员工部门"表明我们将探讨如何在这个SSH框架中实现权限管理和员工部门管理。 **Struts2** 是一个MVC(模型-视图-控制器)框架,它负责处理用户请求,控制应用程序流程,并将数据传递...

    SSH框架下的用户权限管理(树形结构)

    而"增、改角色信息,编辑角色权限"则涉及到角色管理和权限分配。每个用户可以被分配一个或多个角色,这些角色定义了用户在系统中的权限集合。通过角色,我们可以实现批量的权限分配,使得权限管理更为便捷。 在文件...

    权限管理(ssh)+dwr

    在权限管理中,Spring提供了强大的安全性支持,如Spring Security(原Acegi),可以实现用户的认证与授权,包括基于角色的访问控制(RBAC)和细粒度的权限分配。 Struts作为MVC框架,负责处理HTTP请求并将其映射到...

    基于SSH2架构的Java Web通用权限管理的设计.pdf

    在SSH2框架下,这种设计可以充分利用Spring的安全管理功能,如Spring Security(原Acegi Security),它提供了一套完整的权限控制机制,包括认证、授权、访问控制等功能。通过配置Spring Security,可以实现用户登录...

    rapidsh-SSH经典整合框架-包括权限管理-文件上传下载-用户管理-分页-lookup

    **权限管理**:在SSH框架中,通常会利用Spring Security(原Acegi)或者Apache Shiro来实现权限控制。这些安全框架提供了角色、权限的概念,可以对用户的访问权限进行精细化控制,确保系统安全。 **文件上传下载**...

    基于SSH基础的用户管理

    在这个“基于SSH基础的用户管理”项目中,我们主要关注的是如何使用SSH框架来实现Java中的用户管理和权限控制。SSH在这里指的是Spring、Struts和Hibernate这三个开源Java框架的组合,它们共同构建了企业级应用的基础...

    基于ssh的用户管理系统jsp

    7. **安全控制**:SSH框架提供了安全控制机制,例如使用Spring Security(原Acegi)进行身份验证和授权,防止未授权访问。此外,Struts2的拦截器也可以用来实现登录检查和会话管理。 8. **数据访问对象(DAO)**:...

    JAVA基于SSH的酒店管理系统的分析与设计

    6. **权限控制**:SSH框架支持基于角色的访问控制(RBAC),在酒店系统中,不同角色(如管理员、普通用户)有不同的操作权限,需要通过Spring Security或Acegi等扩展实现。 7. **异常处理**:系统应有完善的异常...

    oa.rar_flex ssh oa_java oa_ssh权限管理

    在权限管理中,Spring Security(以前称为Acegi Security)可以提供用户认证和授权,确保只有具备相应权限的用户才能访问特定资源。 2. Struts:Struts作为MVC(Model-View-Controller)框架的一部分,负责处理HTTP...

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

    在本节Java SSH权限系统开发视频教程第16讲中,我们将深入探讨如何构建和实现一个基于SSH(Spring、Struts2和Hibernate)框架的安全权限管理系统。SSH是Java Web开发中常用的三大开源框架,它们各自负责不同的职责:...

Global site tag (gtag.js) - Google Analytics