@Component
public class MyAuthenticationProvider implements AuthenticationProvider {
@Autowired
private CustomUserDetailsService userService;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = authentication.getName();
String password = (String) authentication.getCredentials();
CustomUserDetails user = (CustomUserDetails) userService.loadUserByUsername(username);
if(user == null){
throw new BadCredentialsException("用户不存在");
}
if (!password.equals(user.getPassword())) {
throw new BadCredentialsException("错误的密码");
}
Collection<? extends GrantedAuthority> authorities = user.getAuthorities();
return new UsernamePasswordAuthenticationToken(user, password, authorities);
}
@Override
public boolean supports(Class<?> arg0) {
return true;
}
}
在springBoot项目中有这个类验证用户名和密码。现在想添加图片验证码(Kaptcha)该如何实现???
이 클래스를 다시 작성하고 인증 코드 확인을 추가하세요.
다음은 Shiro의 인증 코드 추가 방법에 대한 또 다른 예입니다
공개 클래스 CaptchaFormAuthenticationFilter는 FormAuthenticationFilter를 확장합니다.{
으아악}
공개 클래스 CaptchaUsernamePasswordToken은 UsernamePasswordToken을 확장합니다. {
으아악}