2009-09-21 51 views
2

我只是读an article是呈现出以下的Spring Security XML配置:您如何知道Spring配置标签具有哪些XML参数?

<authentication-provider> 
    <password-encoder hash="sha" /> 
    <jdbc-user-service data-source-ref="dataSource" /> 
</authentication-provider> 

我想知道,如果密码编码器可以采取的参数,这将使其使用SHA-256的组合。我很容易找到ShaPasswordEncoder的Java构造函数,但是如何判断password-encoder标签是否接受Java对象的参数?

一般来说,怎么能说出Spring配置的标签和参数是什么?

例如,我怎么知道ShaPasswordEncoder与“密码编码器”(如果确实如此)一起使用?

+0

的 “春天里” 的标签是不恰当的,这指的是Spring框架,而不是春季安全。 – skaffman 2009-09-22 07:18:37

+0

在问题标题和嵌入问题中(“一般来说,怎么能说出Spring配置的标签和参数是什么?”),我想了解Spring作为一个整体。我以Spring安全为例。 – dfrankow 2009-09-23 14:59:47

+0

@skaffman - “一般来说,怎么能说出Spring配置的标签和参数是什么?”是一个普遍的春季问题,所以“春天”标签是有道理的。我会建议“spring-framework”适用于Spring框架,“spring”适用于Spring产品套件。 – SingleShot 2009-09-23 15:04:03

回答

2

你看看XML Schema。例如:

<xs:attribute name="hash"> 
    <xs:annotation> 
    <xs:documentation> 
     Defines the hashing algorithm used on user passwords. We recommend 
     strongly against using MD4, as it is a very weak hashing algorithm. 
    </xs:documentation> 
    </xs:annotation> 
    <xs:simpleType> 
    <xs:restriction base="xs:token"> 
     <xs:enumeration value="plaintext"/> 
     <xs:enumeration value="sha"/> 
     <xs:enumeration value="sha-256"/> 
     <xs:enumeration value="md5"/> 
     <xs:enumeration value="md4"/> 
     <xs:enumeration value="{sha}"/> 
     <xs:enumeration value="{ssha}"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:attribute> 

所以,你应该这样做:

<authentication-provider> 
    <password-encoder hash="sha-256" /> 
    <jdbc-user-service data-source-ref="dataSource" /> 
</authentication-provider> 
+0

太棒了!一般来说,模式在配置文件的xsi:schemaLocation中给出,所以对于我使用的http://www.springframework.org/schema/beans/spring-beans-2.5.xsd的bean配置。 – dfrankow 2009-09-23 15:04:51

+0

但是这些枚举值映射到哪些类?我看不出在哪里定义。 – Marplesoft 2011-02-22 00:15:42

相关问题