From: Vladimir G. <vga...@ne...> - 2009-12-26 18:42:01
|
In search for the place where password hashing should be implemented, I have been having difficulty identifying TB2 code responsible for comparing user-supplied password to the one stored in db. My best guess at the moment is that authentication is handled by the acegi- security package -- based on this in treebase-web/.../treebase- security.xml: <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"> <property name="userDetailsService"><ref bean ="userService"/ ></property> <!-- encrypt password instead of storing in clear text in DB --> <!-- property name="passwordEncoder" ref="passwordEncoder"/ --> <!-- the next 2 lines are for debugging purpose --> <!-- property name="userDetailsService" ref="jdbcDaoImpl"/ --> <!-- property name="userDetailsService" ref="myUserServices"/ --> </bean> <!-- bean id="passwordEncoder" class="org.acegisecurity.providers.encoding.ShaPasswordEncoder"/ --> Am I right about acegi? The declarations commented-out above suggest that it could be possible to get password hashing from acegi for free. Does anyone know why this is currently disabled? My plan now would be to learn acegi (which, btw, is SpringSecurity starting with Spring 2.0, which TB2 uses) and what it offers for password hashing -- unless someone offers more focused guidance on what I should do. I'll follow the suggestions at http://acegisecurity.org/suggested.html --Vladimir |