Have config (ApplicationContext-security.xml):Wiosna bezpieczeństwa: kodowanie haseł w DB w ApplicationContext
<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder hash="sha"/>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
z drugiej strony mają zapytania SQL z moim dataSource
(to JdbcDaoImpl):
...
public static final String DEF_USERS_BY_USERNAME_QUERY =
"select username,password,enabled " +
"from users " +
"where username = ?";
...
W tym kodzie znajduje się teraz słowo o numerze sha
, dlatego hasło wybrane ze standardowej tabeli Spring Security users
nie jest zakodowane.
Może powinienem zapewnić pewne sha
atrybut password
kolumny w moim hibernacji mapowania config tutaj:
<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>
Na razie hasło zapisane do DB, jak jest, ale powinny być kodowane.
Jak zaprzyjaźnić się z applicationContext
zapytaniami config i DB, które mają być tym samym kodowaniem hasła?
Luke Taylor, dziękuję, że chciałem wiedzieć - że powinienem podać hasło hasłem, zanim wstawię je do DB. – sergionni
o soli, wiem, to jest kolejna faza mojego wyzwania bezpieczeństwa)) – sergionni
Jeśli używasz czegoś podobnego do bcrypt, to jest ono automatycznie obsługiwane, więc nie ma żadnego wyzwania :-). Nie musisz sam sobie radzić z solą. –