发布一篇Acegi + Spring + Hibernate + Struts 2搭建基于脚色的权限把持
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。平安永久是WEB使用体系必需面临的优等年夜事,也是最头疼的事,实在平安体系就只包含两个成绩:认证和受权.
之前做些网站体系,平安检测逻辑都在放在必要平安把持的代码后面,如许做有良多欠好的中央,反复屡次的编码就不必说了,代码移植性,重用性都得不到表现,平安检测逻辑要永久和营业逻辑放在一同.
那末,能不克不及够在进进办法前就挪用一些平安检测?实在SpringAOP就是这个头脑,那末又怎样完成平安检测呢?SpringAcegiSecurity框架就是做这个事变.
本文次要是会商下在已有的SSH体系中,怎样利用Acegi作为平安框架完成基于脚色的权限把持(RoleBasedAccessControlRBAC),本文次要是以Java5注解的情势来设置平安框架,年夜年夜减化设置和操纵.
本文的次要参考材料:<Spring2.0中心手艺与最好理论>第10章(SpringAcegi平安框架)
<精晓Spring2.X--企业使用开辟详解>第17章(利用Acegi实行使用体系平安)
acegi-security-1.0.6官方文档
申明:本文先容的是RBAC,在官方文档的基本上有所扩大或修改,以更合适WEB使用体系.实在我以为年夜多半的网站基于脚色已充足了,一样平常都没需要基于权限.
文章入手下手:
一.下载所要的软件或JAR包:
我的相干设置是:Java5,Tomcat5.5.26,Struts2.0.11,Spring2.5.1,Hibernate3.2,Acegi1.0.6
二.创建相干的数据库:
数据表:用户信息表User:id,enable,user_name,user_pass,email_box
脚色信息表RoleInfo:id,role_name,role_title,descp
用户与脚色联系关系表(用户与脚色是多对多干系)UserRole:user_id,user_name,role_id,role_name
并在这三个表中拔出相干的数据,我是界说了两种脚色(role_name):ROLE_USER,ROLE_ADMIN
和三个用户,一个用户脚色为:ROLE_USER,ROLE_ADMIN
另外一个用户脚色为:ROLE_USER
第三个没有脚色.
<p>
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页:
[1]