有关Spring Security 的配置

 初学spring security的人如我之水平者,看见它的配置方式,脑袋上面会冒出一个大大的问号,配是配好了,但这之后的原理是什么呢,为什么要这么配置呢,它默认的登录页面怎么出来的?j_spring_security_check这个url又是在哪定义的?带着这些疑问,下了它的源代码和参考文档 ,但文档只是教你怎么用,并没讲为什么这么用,源码是有一大堆,类名又都差不多一个样,研究这些感觉还是无从下手。索性想从它的配置文件开始。spring security即以前的acegi是在是spring 2.0之后改进的版本,其中很大的一个改进就是配置的简化,之前也看了acegi的配置,那是相当的长而且难看懂。可能Rod Johnson也看不惯了,改进了些吧,但还是有些麻烦:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:security="http://www.springframework.org/schema/security"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org
/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/security http://www.springframework.
org/schema/security/spring-security-2.0.xsd">
    <security:http auto-config="true">
        <security:intercept-url pattern="index.html" filters="none"/>
        <security:intercept-url pattern="*.swf" filters="none"/>
        <security:intercept-url pattern="*.html" access="ROLE_USER"/>
    </security:http>
    <security:authentication-provider>
        <security:user-service>
            <security:user name="admin" password="admin" authorities="ROLE_USER, 
ROLE_ADMIN"/>
            <security:user name="user" password="user" authorities="ROLE_USER"/>
        </security:user-service>
    </security:authentication-provider>
</beans>
以上是个简单的配置示例,想要使用稍复杂的数据库验证,加密,方法授权等等等都还要另外配置。更复杂
的openid,ldap的支持等等等那更有复杂的配置等着。这些暂不管,我只管能搞懂基本就ok了,呵呵。
废话了半天,开始进入正题,高手肯定早就发现了,它能够如此将以前acegi动不动上百行的配置写得如此
简短,主要是因为它使用了从spring2.0开始才支持的命名空间这一利器。查了spring的reference,
发现在附录部分讲了这方面的内容。详细情查spring参考手册附录之 Extensible XML authoring 。
粗略的看了看,大致就是说,为了支持自定义的命名空间这一配置文件须在META-INF目录下面的
spring.handlers文件里面指定一个继承了NamespaceHandlerSupport的类。比方说:http/:
//www.mycompany.com/schema/myns=org.springframework.samples.xml.MyNamespaceHandler
 
再去spring-security-core-xx.jar里面看(可用winrar打开),果真有这个文件双击打开就一行:
 
http/://www.springframework.org/schema/security=org.springframework.security.
 
config.SecurityNamespaceHandler显而易见SecurityNamespaceHandler这个就是入口咯,接下
 
来就该从它入手了。不过要等等。。。。。。。。。。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值