操纵SpringSide 3.1.4.3开辟Web项目的全历程(下)[Java编程]
本文“操纵SpringSide 3.1.4.3开辟Web项目的全历程(下)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
第八步、利用Spring Security保护Web资源.在SpringSide 3项目中,已经 整合进了SpringSecurity,实现了符合RBAC标准的权限管理系统,并把数据保存 到了数据库中.我从前的博文SpringSide 3 中的安全框架中对SpringSecurity 有一个初步的探究,我认为我写的东西对入门来说是很有帮忙的,入门今后再深 入就简单了,在评论中我又增补了几点,此中就提到假如要把资源权限配置内容 放到数据库中,就要从objectDefinitionSource着手.事实上,在最新的 SpringSide 3版本中,就是通过定义一个databaseDefinitionSource来实现从数 据库中读取资源和权限之间的关系,而 databaseDefinitionSource引用 resourceDetailService,而该Service调用 personal.youxia.service.security.ResourceDetailServiceImpl.就是这样一 层套一层的关系,但是终究只需求用户实现 personal.youxia.service.security.ResourceDetailServiceImpl便可.在 SpringSide 3项目中,实现该Service的工作都可以省略,因为江南白衣已经做 好了.而我们要做的,就是在他供应的底子上举行扩大.
在项目中,已经定义好了users、roles、authorities和resource,假如需求 扩大此中肆意一项,只需求向对应的数据表增添记录便可.预定义的role有“管 理员”和“用户”两种,我认为在该示例中已经没有增添角色的必要了,而 authorities是必定要增添的,我想让只有“用户”可以增添文章,只有“管理 员”可以删除文章,所以在authorities表中增添以下两行:
insert into AUTHORITIES (NAME,DISPLAY_NAME) values ('A_ADD_ARTICLE','增添文章');
insert into AUTHORITIES (NAME,DISPLAY_NAME) values ('A_DELETE_ARTICLE','删除文章');
成立authorities表和roles表的接洽,用户可以增添文章,管理员当然也能 够增添文章,而只有管理员可以删除文章,所以在数据库中增添以下三行:
insert into ROLES_AUTHORITIES values(1,5);
insert into ROLES_AUTHORITIES values(1,6);
insert into ROLES_AUTHORITIES values(2,5);
再来看看需求保护的资源,它们应当辨别为article.action、article! input.action、article!save.action、article!delete.action,此中只有背面 三个需求保护,因此在数据库中增添以下三行:
insert into RESOURCES (RESOURCE_TYPE,VALUE,ORDER_NUM) values('url','/article!input*',7.0);
insert into RESOURCES (RESOURCE_TYPE,VALUE,ORDER_NUM) values ('url','/article!save*',8.0);
insert into RESOURCES (RESOURCE_TYPE,VALUE,ORDER_NUM) values ('url','/article!delete*',9.0);
最后,需求成立受权和资源之间的接洽,以下:
insert into RESOURCES_AUTHORITIES values(5,7);
insert into RESOURCES_AUTHORITIES values(5,8);
insert into RESOURCES_AUTHORITIES values(6,9);
这时,再运行项目,会发现没有登录的用户只能察看文章,而点击增添文章 或删除文章的链接,就会跳到Login界面,或显示你没有拜候该页面的权限.
关于项目中自带的用户、角色、受权和资源管理,我是这样的见解:最开始 接触SpringSide 3项目的时刻,我认为该功效是个鸡肋,乃至想过把这些功效删 撤除,弄一个干净的项目重新做;经过一段时间的考虑后,我的见解变了,我觉 得这个功效非常有效,是一个很好的底子,而我们自己的功效,都可以从这里进 行扩大;这里的扩大,大部份都只需求在数据库中增添数行记录便可,正如上面 的演示,唯一不能到达要求的,大概是有的人认为users表字段太少,而实际项 目中我们要记录用户的信息远远不止这么少,其实这个问题也好办理,只需求创 建一个 user_details表便可,大概叫user_profiles,再按照之前的步骤成立针 对user_details表的增删查改功效;总之,尽大概不要去更改江南白衣已经实现了 的数据库构造和程序代码.
SpringSecurity针对资源的保护,不但仅是只能在数据库中配置,其实 SpringSecurity更供应了一些有效的标签,可以在视图文件中机动利用.具体内 容,大家请参考SpringSecurity文档.
第九步、将项目迁移到大都据库环境.其实只要理解前面的八步,简单的项 目便可以搞定了,但是关于努力于高并发高负载的分布式利用,则离不开大都据 源和分布式事件管理,Web Service和AJAX的跨域拜候也是做分布式利用的有力 武器.在我前面的博文中,我已经探究过了大都据源配置的各种问题:
SpringSide 3 中的大都据源配置的问题
在SpringSide 3 中利用多个数据库的办法
在这里,我挑选了第三种办法,就是在Spring中整合Atomikos.下载 Atomikos 3.5.5版,把以下transactions-essentials-alljar文件和 jta.properties文件拷入到项目的WEB-INF/lib目录下.
成立第二个数据库,名称为MultiDatasourceExampleIndex,此中包含一个 Article表,以下:
以上是“操纵SpringSide 3.1.4.3开辟Web项目的全历程(下)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |