package com.iplatform.security.callback; import com.iplatform.base.util.PlatformRSAUtils; import com.iplatform.model.po.S_user_core; import com.walker.web.UserPrincipal; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; /** * 移动端(H5),使用:用户名、密码(AES) + 普通验证码登录方式。 *

因为移动端与PC端密码加密方式不一致,所以无法复用PC登录验证模式,因此重新定义!

* @author 时克英 * @date 2023-12-28 */ public class MobilePassCaptchaLoginCallback extends EncryptPasswordLoginCallback{ @Override public boolean validatePassword(UserPrincipal userPrincipal) { Authentication usernamePasswordAuthenticationToken = SecurityContextHolder.getContext().getAuthentication(); String password = usernamePasswordAuthenticationToken.getCredentials().toString(); try { // 移动端,只支持AES密码加密,目前情况。2023-12-28 String originPassword = PlatformRSAUtils.getAesDecryptValue(password); logger.debug("......... 解密的password = {}", originPassword); return this.passwordEncoder.matches(originPassword, userPrincipal.getPassword()); } catch (Exception e) { logger.error("", e); throw new RuntimeException("解析登录密码错误:" + e.getMessage(), e); } } }