老师,真实业务场景中密码是怎么获取到的?

来源:5-6 实现授权码认证流程(2)

进击的中华田园犬

2019-10-12

@Component
public class UserDetailService implements UserDetailsService {

    @Autowired
    private PasswordEncoder passwordEncoder;

    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        // 真正的业务场景一定要读数据库的
        return User.withUsername(username)
                .password(passwordEncoder.encode("123456"))
                .authorities("ROLE_ADMIN")
                .build();
    }
}

前面听课,老师说真实业务场景要读数据库校验密码。我们课程中是密码直接用固定的,那如果是真实场景,用户输入的账号密码我们是怎么获取到的?

写回答

1回答

JoJo

2019-10-14

你在这里读取数据库的密码放到user对象里,spring security会在PasswordEncoder里比对。你可以在这里获取到用户名,在PasswordEncoder接口的实现里获取到密码。关于Spring Security的原理,细节等等内容可以参考我的另一门课: https://coding.imooc.com/class/134.html 

0
0

Spring Cloud微服务安全实战 可落地的安全方案

从API到复杂微服务场景,实战部署可落地的安全方案。

1029 学习 · 370 问题

查看课程