我是照着这个博客来的,https://blog.csdn.net/ii950606/article/details/128485787,但是遇到一个问题,这句authenticationManager.authenticate(new SmsCodeAuthenticationToken(phone));代码报了一个空指针异常,debug了很久也没找到问题,求各位大佬帮忙解答一下。 大佬, 框架
在代码附近定义一个变量 SmsCodeAuthenticationToken st=new SmsCodeAuthenticationToken("13000000000");实例,看看这个st有么有值。然后调试。如果还找不到问题。就附近方法里面那个变量的值没有传过去或者为空的。
gao3705512 发表于 2023-2-15 15:52 在代码附近定义一个变量 SmsCodeAuthenticationToken st=new SmsCodeAuthenticationToken("13000000000 ... st是有值的,就是authenticationManager.authenticate(st)这个方法出现问题
仔细调试这里 /** * 重写 authenticate方法,实现身份验证逻辑。 */ @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { SmsCodeAuthenticationToken authenticationToken = (SmsCodeAuthenticationToken) authentication; String telephone = (String) authenticationToken.getPrincipal(); // 委托 UserDetailsService 查找系统用户 UserDetails userDetails = userDetailsService.loadUserByUsername(telephone); // 鉴权成功,返回一个拥有鉴权的 AbstractAuthenticationToken SmsCodeAuthenticationToken authenticationResult = new SmsCodeAuthenticationToken(userDetails, userDetails.getAuthorities()); authenticationResult.setDetails(authenticationToken.getDetails()); return authenticationResult; }