有无配置(的applicationContext-security.xml文件):春季安全:DB和密码的applicationContext编码
<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder hash="sha"/>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
从对方从我dataSource
(这是JdbcDaoImpl)SQLS:
...
public static final String DEF_USERS_BY_USERNAME_QUERY =
"select username,password,enabled " +
"from users " +
"where username = ?";
...
在此代码中现在有关于sha
的字,因此从标准Spring Security users
表中选择的密码未经过编码。
也许,我应该为password
列一些sha
属性在我的Hibernate映射配置此处
<class name="model.UserDetails" table="users">
<id name="id">
<generator class="increment"/>
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<property name="enabled" column="enabled"/>
<property name="mail" column="mail"/>
<property name="city" column="city"/>
<property name="confirmed" column="confirmed"/>
<property name="confirmationCode" column="confirmation_code"/>
<set name="authorities" cascade="all" inverse="true">
<key column="id" not-null="true"/>
<one-to-many class="model.Authority"/>
</set>
</class>
现在保存到数据库为有密码,但应该进行编码。
如何将朋友applicationContext
config和DB查询的密码编码相同?
是的,我知道这样做只是一个提示,但你没有对我的问题问如何提供,用户密码保存的编码,以DB – sergionni 2011-12-15 18:02:34
好吧,我不知道知道你提供的意思,但要坚持,我已经使用[DigestUtils](http://commons.apache.org/codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html)。 – falsarella 2011-12-15 18:09:38