论坛首页 Java企业应用论坛

快速添加spring security模块

浏览 8665 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-06-08   最后修改:2010-06-24
    如果你只是听说了spring security的大名,但是知之甚少,但是又希望马上把验证功能添加到自己的程序中的人,那么就继续阅读吧,5分钟之内,如果上帝保佑,并且你复制粘贴得够快。
     最终的效果是这样的,用户名和密码都保存在数据库中;属于表单提交的登录;并且采用spring自带的j_spring_security_check来验证。如果结尾您觉得太简陋了,那就自行改进,要知道,5分钟,我也不可能带你走很远。因为写文章前半个小时,我刚刚走通这一步。
   首先,页面上是这样的:
<form action="j_spring_security_check">
<input type="text" name="j_username" >
<input type="password" name="j_password">
<input type="submit" value="login" > <input type="reset" value="reset">
</form>

当然,我去掉了样式。注意input的name都是固定的名字,因为我们用的是默认的
引用
j_spring_security_check


然后需要改变web.xml。
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

这个要放在struts的filter之前,如果您的web.xml文件中有的话。

然后是applicationContext.xml文件,这个文件里面要配置两项,第一是配置数据源,
如果现有的数据库中用户表叫做
引用
users
,并且其中包含了username,password,authorities三项,那么authorities-by-username-query这个属性就不用写了,我这里写是因为我的数据库中,用户表叫做usertable,
<security:authentication-provider>
    <security:password-encoder hash="md5"/>
    <security:jdbc-user-service data-source-ref="dataSource" authorities-by-username-query="select username,authority from usertable where username=?"/>
</security:authentication-provider>

然后需要设置哪些资源要被保护起来,访问的权限,登录成功后展示的页面,访问被拒绝的展示页面等。
    <security:http auto-config="true" access-denied-page="/accessDenied.jsp">
        <security:intercept-url pattern="/login.html" filters="none"/>
        <security:intercept-url pattern="/img/*.*" filters="none"/>
        <security:intercept-url pattern="/styles/*.*" filters="none"/>
        <security:intercept-url pattern="/**" access="ROLE_ADMIN" />
        <security:form-login login-page='/login.html' authentication-failure-url="/login.html" default-target-url="/main.jsp" 
/>
    	<security:logout logout-success-url="/login.html"/>
    </security:http>

好了,一切都结束了。
   发表时间:2010-06-08  
搞了半天,还不知道是用的哪个版本的.
有点简单,有时间可以玩一下 .
0 请登录后投票
   发表时间:2010-06-08  
你确认不想先看看我们写的spring security文档?
http://xyz20003.iteye.com/blog/440486
0 请登录后投票
   发表时间:2010-06-08  
xyz20003 写道
你确认不想先看看我们写的spring security文档?
http://xyz20003.iteye.com/blog/440486


当然要看,你们写的很详细,我只是任务紧,需要快速上手,还没来得及消化很多东西。
0 请登录后投票
   发表时间:2010-06-08  
wenqxin 写道
搞了半天,还不知道是用的哪个版本的.
有点简单,有时间可以玩一下 .

2.0的,看样子你不急着用
0 请登录后投票
   发表时间:2010-06-08  
spring security把事情稿复杂了,太多用不上的功能

基于角色的认证没必要用这个
0 请登录后投票
   发表时间:2010-06-08  
magibt 写道
spring security把事情稿复杂了,太多用不上的功能

基于角色的认证没必要用这个


个人感觉,框架的特点就是这样,需要面对很多需求。
非常适合解燃眉之急。
0 请登录后投票
   发表时间:2010-06-08  
呵呵,兄弟这真是快速啊
0 请登录后投票
   发表时间:2010-06-08  
谢谢!刚好最近我也在研究这个
0 请登录后投票
   发表时间:2010-06-08  
一直没研究好这个东西。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics