首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

【自学Spring Security】之增添数据库支持

2012-12-19 
【自学Spring Security】之添加数据库支持??? 上次编写了一个能够运行的Demo程序,但不是很符合实际,很少人将

【自学Spring Security】之添加数据库支持

??? 上次编写了一个能够运行的Demo程序,但不是很符合实际,很少人将用户名和密码配置到文件当中去吧,今天想给这个Demo添加如下功能:
??? 1)用户名和密码要存在数据库当中;

??? 2)自定义登录界面;
??? 3)admin用户和user用户看到了index.jsp文件内容要不同,admin用户可以多看到一个admin.jsp的连接。
??? 好了,开始今天的程序,首先要添加MYSQL的jdbc驱动、commons-dbcp-1.4.jar、commons-pool-1.5.5.jar和org.springframework.transaction-3.0.6.RELEASE.jar(在Spring Security中没有提供,需要自己下载):
??? 一,从数据库中读取用户名和密码
??? 1.新建数据库表,数据库用的是MySQL
??? user表

?替换为

?? 3.定义数据源(我是新建了一个springContext-business.xml文件,并并在web.xml的context-param中添加路径信息)

?? 现在再运行一下程序,可以了吧。

?? 现在还有一个问题:对于遗留系统,数据库的表是不能修改的,可以将myUserDetailsService 这个Bean修改为:

??? userByUsernameQuery传入用户名,返回username,password,enable三个字段,如果字段不匹配或者没有enable字段,可以写成:select name as username,pwd as password,1 from ....。

??? authoritiesByUsernameQuery传入用户名,返回username和authority两个字段。

??? 二、自定义登录界面

??? 1.删除<http>标签,替换为

? ? 设置login.jsp所有人都可以访问

??? 2.新建login.jsp文件

? ? 注意:j_spring_security_check,j_username,j_password都是Spring Security规定好的,不能改变。

?? 三,实现admin和user用户看到的页面不同

?? 这里要使用到Spring Security的标签库,并开启use-expressions。

?? 1.在http标签上添加user-expression="true"属性

? ? 所有的access值也要使用内置的表达式hasRole来判断权限(注意括号内还有一对单引号)。

?? 2.修改index.jsp为

?

好了,今天就学习到这里吧。请高手多多指点,轻拍。

1 楼 pastore123 2012-03-04   问下,需要自己编写myUserDetailsService这个类吗?还有一个问题是登录表单是提交到哪呢? 2 楼 leman_zk 2012-03-05   pastore123 写道问下,需要自己编写myUserDetailsService这个类吗?还有一个问题是登录表单是提交到哪呢?
myUserDetailsService只要是一个实现了UserDetailsService的类即可。
表单j_spring_security_check提交后,被DelegatingFilterProxy处理,进行权限验证。

热点排行