我刚刚阅读an article,其中显示了以下Spring Security 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 :(得分: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>