如何在Spring 5中将密码编码器添加到身份验证提供者

时间:2018-07-17 08:48:41

标签: java spring spring-boot

我正在尝试向身份验证提供者添加一个密码编码器,该密码编码器引用了UserDetailsByNameServiceWrapper,但我在Spring Docs中找不到有关如何添加nooppassword编码器或BCryptPasswordEncoder的任何信息。

能否请我理解在xml配置中可以在哪里添加bCryptPasswordEncoder。

2 个答案:

答案 0 :(得分:0)

您已正确连接.gitingore。现在,不要使用vendor/ node_modules/ npm-debug.log # Laravel 4 specific bootstrap/compiled.php app/storage/ storage/ # Laravel 5 & Lumen specific public/storage public/hot /storage/logs/laravel.log storage/logs/laravel.log storage/*.key .env.*.php .env.php .env Homestead.yaml Homestead.json

改为让您的类bCryptPasswordEncoder来实现AuthenticationUserDetailsService

UserDetailsByNameServiceWrapper

答案 1 :(得分:0)

在spring-security.xml中,我完成了以下配置:

<authentication-manager>
    <authentication-provider ref="authenticationProvider" />
</authentication-manager>

<beans:bean id="authenticationProvider" class="com.sc.auth.LimitLoginAuthenticationProvider">
    <beans:property name="passwordEncoder" ref="encoder" />
    <beans:property name="userDetailsService" ref="customUserDetailsService" />
    <beans:property name="userDetailsManager" ref="userDetailsManager" />
</beans:bean>

<beans:bean id="encoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
    <beans:constructor-arg name="strength" value="10" />
</beans:bean>

我的com.sc.auth.LimitLoginAuthenticationProvider类扩展了org.springframework.security.authentication.dao.DaoAuthenticationProvider;。

DaoAuthenticationProvider需要字段org.springframework.security.authentication.encoding.PasswordEncoder;作为我通过属性注入通过id =“ authenticationProvider”定义bean时提供的参数

请尝试这个。希望这会有所帮助!