为什么实现了UserDetailsService后却不生效?是不是还需要配置指定自己的实现类呢?看老师并没有额外的配置呀!
来源:4-3 自定义用户认证逻辑

慕移动6444835
2019-06-13
有加@Component注解,启动时,控制台仍然打印出一串默认密码,自定义的UserDetailsService实现类并没有生效。
写回答
3回答
-
鸿鹄yyn
2020-04-03
这里我添加一下我修改完成的代码 大家可以参考一下
package com.lin.security.browser.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; /** * @author Hognhu * @Dataon 2020/3/25 */ @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired MyUserDetailService myUserDetailService; //注册一个密码转换器 @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { //配置自定义的userDetails 和 passwordEncoder auth.userDetailsService(myUserDetailService).passwordEncoder(passwordEncoder()); } @Override protected void configure(HttpSecurity http) throws Exception { http .formLogin() .and() .authorizeRequests() .anyRequest() .authenticated() .and() //跨站点请求伪造 .csrf() .disable(); } }
00 -
鸿鹄yyn
2020-04-03
首先 你要确保 你在 browser 模块下的config 要被 spring 扫描到 : 具体做法可以在 Application 启动类上加上componentScant
00 -
慕移动6444835
提问者
2019-06-13
自己找资料解决了,还需要在继承自WebSecurityConfigurerAdapter
的javaconfig里实现以下方法,设置自己的UserDetailsService实现,只是视频里没见老师这么做,怎么就默认认到了呢,奇了怪。
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(myUserDetailsService);
}022019-08-07
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题