Конфигурация (applicationContext-security.xml):
<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder hash="sha"/>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
с другой стороны, есть SQL от моего dataSource
(это JdbcDaoImpl ):
...
public static final String DEF_USERS_BY_USERNAME_QUERY =
"select username,password,enabled " +
"from users " +
"where username = ?";
...
Теперь в этом коде есть слово о sha
, поэтому пароль, выбранный из стандартной таблицы Spring Security users
, не закодирован.
Возможно, я должен предоставить некоторый атрибут sha
для столбца password
вмоя конфигурация отображения 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 и запросы БД, чтобы быть тем же паролемкодирование