spring-security3 配置和使用(二)承上

2、xml配置,配置内容如下:

Xml代码 

<? xml   version = "1.0"   encoding = "UTF-8" ?>   

< beans:beans   xmlns = "http://www.springframework.org/schema/security"         xmlns:beans = "http://www.springframework.org/schema/beans"         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation ="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/security        http://www.springframework.org/schema/security/spring-security-3.0.xsd" >           <!--  auto-config  =  true  则使用from-login. 如果不使用该属性 则默认为http-basic(没有session).             access-denied-page:出错后跳转到的错误页面;        -- >      

  < http   auto-config = "true"   access-denied-page = "/common/403.jsp" >            

<!-- intercept-url:拦截器,可以设定哪些路径需要哪些权限来访问. filters=none 不使用过滤,也可以理解为忽略 -->           

< intercept-url   pattern = "/index.jsp"   access = "ROLE_USER"   />            

< intercept-url   pattern = "/login.jsp"   filters = "none"   />            

< intercept-url   pattern = "/common/**"   filters = "none"   />          

  < intercept-url   pattern = "/script/**"   filters = "none"   />            

< intercept-url   pattern = "/admin.jsp"   access = "ROLE_ADMIN"   />          

  < intercept-url   pattern = "/user.jsp"   access = "ROLE_USER"   />                       

<!-- session-management是针对session的管理. 这里可以不配置. 如有需求可以配置. -->           

<!-- id登陆唯一. 后登陆的账号会挤掉第一次登陆的账号   error-if-maximum-exceeded = "true"  禁止2次登陆;                 session-fixation-protection = "none"  防止伪造sessionid攻击. 用户登录成功后会销毁用户当前的session.                创建新的session,并把用户信息复制到新session中.             -- >           

< session-management   session-fixation-protection = "none" >                

< concurrency-control />            

</ session-management >                        

<!-- login-page:默认指定的登录页面. authentication-failure-url:出错后跳转页面. default-target-url:成功登陆后跳转页面 -->            

< form-login   login-page = "/login.jsp"                 authentication-failure-url = "/common/403.jsp"                 default-target-url = "/admin.jsp"   />          

  <!-- logout-success-url:成功注销后跳转到的页面; -->            

< logout   logout-success-url = "/login.jsp" />           

< http-basic   />                  

  </ http >           <!--         连接池.我spring配置文件中配的有.所以这里就注掉了.         < beans:bean   id = "dataSource"   class = "org.apache.commons.dbcp.BasicDataSource" >               < beans:property   name = "driverClassName"   value = "com.mysql.jdbc.Driver" />               < beans:property   name = "url"   value = "jdbc:mysql://localhost/demo" />            

          < beans:property   name = "username"   value = "root" />              

          < beans:property   name = "password"   value = "root" />          

    </ beans:bean >           -- >         

  <!-- 权限管理操作 -->        

< authentication-manager >           

< authentication-provider >               

<!--                 密码加密方式. 常用的有md5 和 sha.                 salt-source:忘记了.. 手头api关了,网速卡就不上网查了. 类似在md5上又加了一层. 放置暴力破解. 追加安全性.              

  < password-encoder   hash = "md5" >                  

  < salt-source   user-property = "username" />              

  </ password-encoder >                 -- >              

  <!-- 注入dataSource验证数据库中的用户名.密码.账号状态.和权限相关; -->               

< jdbc-user-service   data-source-ref = "dataSource"                     users-by-username-query = "select username,password,enabled from user where username = ? and enabled = 1"                     authorities-by-username-query = "select u.username,r.name from user u join user_role ur on u.uid = ur.uid join role r on r.rid = ur.rid where u.username = ?"   />                <!--                    使用固定的用户名和密码及权限来做验证.                     

< userservice >                   

< user   name = "admin"   password = "admin"   authorities = "ROLE_USER, ROLE_ADMIN"   />                    

< user   name = "user"   password = "user"   authorities = "ROLE_USER"   />                   

</ user-service >                -- >         

  </ authentication-provider >         </ authentication-manager >         <!--           <beans:bean id="userDetailsServiceImpl" class="com.demo.test.service.impl.UserDetailsServiceImpl" />       -->                <!--             此配置只是自己学习的一个小demo. 数据库也建的比较随意 比较简单. 使用的是角色权限. 个人比较推荐组权限来控制.. (由于工作经验限制,此处为个人理解)            我的库如下:            user:username\password\enabled            role:name\desc            user_role:uid\rid         -- >    </ beans:beans >   

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.0.xsd">

<!-- auto-config = true 则使用from-login. 如果不使用该属性 则默认为http-basic(没有session).
access-denied-page:出错后跳转到的错误页面;
-->
<http auto-config="true" access-denied-page="/common/403.jsp">
<!-- intercept-url:拦截器,可以设定哪些路径需要哪些权限来访问. filters=none 不使用过滤,也可以理解为忽略 -->
<intercept-url pattern="/index.jsp" access="ROLE_USER" />
<intercept-url pattern="/login.jsp" filters="none" />
<intercept-url pattern="/common/**" filters="none" />
<intercept-url pattern="/script/**" filters="none" />
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<intercept-url pattern="/user.jsp" access="ROLE_USER" />

<!-- session-management是针对session的管理. 这里可以不配置. 如有需求可以配置. -->
<!-- id登陆唯一. 后登陆的账号会挤掉第一次登陆的账号 error-if-maximum-exceeded="true" 禁止2次登陆;
session-fixation-protection="none" 防止伪造sessionid攻击. 用户登录成功后会销毁用户当前的session.
创建新的session,并把用户信息复制到新session中.
-->
<session-management session-fixation-protection="none">
<concurrency-control/>
</session-management>
<!-- login-page:默认指定的登录页面. authentication-failure-url:出错后跳转页面. default-target-url:成功登陆后跳转页面 -->
<form-login login-page="/login.jsp"
authentication-failure-url="/common/403.jsp"
default-target-url="/admin.jsp" />
<!-- logout-success-url:成功注销后跳转到的页面; -->
<logout logout-success-url="/login.jsp"/>
<http-basic />
</http>
<!--
连接池.我spring配置文件中配的有.所以这里就注掉了.
<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<beans:property name="url" value="jdbc:mysql://localhost/demo"/>
<beans:property name="username" value="root"/>
<beans:property name="password" value="root"/>
</beans:bean>
-->
<!-- 权限管理操作 -->
<authentication-manager>
<authentication-provider>
<!--
密码加密方式. 常用的有md5 和 sha.
salt-source:忘记了.. 手头api关了,网速卡就不上网查了. 类似在md5上又加了一层. 放置暴力破解. 追加安全性.
<password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder>
-->
<!-- 注入dataSource验证数据库中的用户名.密码.账号状态.和权限相关; -->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select username,password,enabled from user where username = ? and enabled = 1"
authorities-by-username-query="select u.username,r.name from user u join user_role ur on u.uid = ur.uid join role r on r.rid = ur.rid where u.username = ?" />
<!--
使用固定的用户名和密码及权限来做验证.
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="user" password="user" authorities="ROLE_USER" />
</user-service>
-->
</authentication-provider>
</authentication-manager>
<!--
<beans:bean id="userDetailsServiceImpl" class="com.demo.test.service.impl.UserDetailsServiceImpl" />
-->
<!--
此配置只是自己学习的一个小demo. 数据库也建的比较随意 比较简单. 使用的是角色权限. 个人比较推荐组权限来控制.. (由于工作经验限制,此处为个人理解)
我的库如下:
user:username\password\enabled
role:name\desc
user_role:uid\rid
-->

</beans:beans>

 

spring security3  所需要的包整合:

aopalliance-1.0.jar
aspectjrt-1.5.4.jar
aspectjweaver.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-logging-1.1.1.jar
jstl-1.1.2.jar
log4j-1.2.14.jar
spring-aop-2.0.8.jar
spring-beans-2.0.8.jar
spring-context-2.0.8.jar
spring-core-2.0.8.jar
spring-dao-2.0.8.jar
spring-jdbc-2.0.8.jar
spring-security-acl-2.0.4.jar
spring-security-core-2.0.4.jar
spring-security-core-tiger-2.0.4.jar
spring-security-taglibs-2.0.4.jar
spring-support-2.0.8.jar
spring-web-2.0.8.jar
spring-webmvc-2.0.8.jar
standard-1.1.2.jar

帮助文档  下载路径:http://117.40.196.70:8011/file/89/14/8914c0f75491d70c61e25e0dfc5bc6ca/Spring_Security_3_%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3_chm%E4%B8%AD%E6%96%87%E7%89%88.rar?key=ae83d2ff2611d6abe466796496a9809d&uid=0&id=361761&t=1311840449&type=html


 

以上配置结束后可以完成用户登录\权限验证等操作.
配置和使用到这里就结束了. 今天下午的小心得.. spring-security很强大. 在这里感谢family168的在线帮助. 谢谢.. 希望对没有接触过spring-security的朋友有所帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值