这部分,给大家介绍了如何配置配置文件,让我们的security可用

第一步,添加spring-Security的命名空间

第二部分的时候介绍过.可参考Spring Security教程第二部分-工程里添加spring-security

首先打开applicationContext.xml(也可以单独写security.xml),添加如下的这段代码

<beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:security="http://www.springframework.org/schema/security"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="  
           http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
           http://www.springframework.org/schema/aop  
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/context  
           http://www.springframework.org/schema/context/spring-context-3.0.xsd
		   http://www.springframework.org/schema/security 
    	   http://www.springframework.org/schema/security/spring-security.xsd">

注意

xmlns:security="http://www.springframework.org/schema/security"

这句话就是把我们需要用的security的namespace设置为security,可能有人会好奇,这些东西是从哪找的?

第一个方法就是百度

至于第二种就是取下载的官方文档里面找啊,比如,我们进去spring-security的包,会发现有个samples,如下图所示

spring security 加盐 spring security配置_前端开发

然后进入samples,随便选择一个XXXX-xml文件夹,然后打开,我这里打开的地址是


D:\soft\lib\spring-security-3.2.9.RELEASE\samples\spring-security-samples-openid-xml\src\main\webapp\WEB-INF

会发现有两个xml文件,这就是我们需要配置的啦,如下图所示

spring security 加盐 spring security配置_spring security 加盐_02

打开applicationContext-security.xml

spring security 加盐 spring security配置_security_03

是不是就能找到啦,这方法真是百玩不腻啊,相信我,后面有很多文件的配置需要到这里或者官方文档去找的,自己度娘出来是绝对靠不住的,,.


第二步,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>

别问我为啥这样配,,,,我也不知道,反正就是这样


第三步,applictaion.xml进一步配置

在这个文件中先添加

<security:http auto-config="true">
           <security:intercept-url pattern="/**" access="ROLE_USER" />
</security:http>

这句话表明对于任意的资源,只能允许用户为ROLE_USER访问

此外,auto-config="true"是因为其实security在初始化的时候有很多步骤.....自己配很麻烦,尤其是还要卸载xml文件中

因此这个设置就省去了我们自己配的过程,一般也不需要我们自己配

对了,需要强调的是,security对用户身份的管理,必须要以ROLE_开头,这是规定

接下来,我们把用户配在哪呢?因为在这节中我还没有使用数据库,所以就存在配置文件里面啦

配置如下

<security:authentication-manager>
		<security:authentication-provider>
				<security:user-service>
					<security:user name="wulalala"	password="123456" authorities="ROLE_USER" />
				</security:user-service>
		</security:authentication-provider>
</security:authentication-manager>

这个配置就是配置了用户名为wulalala,密码为123456,用户角色为ROLE_USER的用户,如果有多条用户继续在里面添加即可

创建首页,index.jsp页面,运行工程,发现出现了登录页面,如下图所示

spring security 加盐 spring security配置_用户管理_04

输入账号密码,点击login即可正常登录到首页,

到这里security基本配通了

可能有的人会好奇,这个登录页面是从哪里来的?这里推荐大家去看以为博主的博客,里面很好的介绍了一些spring security的源码分析