From 0d70bf682c2303b4f07216110ff051959884cbb4 Mon Sep 17 00:00:00 2001
From: xuefei <564615061@qq.cm>
Date: 星期一, 08 五月 2023 14:44:00 +0800
Subject: [PATCH] 登录密码验证base64加密

---
 xboot-core/src/main/java/cn/exrick/xboot/core/config/security/DaoAuthenticationProvider.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/xboot-core/src/main/java/cn/exrick/xboot/core/config/security/DaoAuthenticationProvider.java b/xboot-core/src/main/java/cn/exrick/xboot/core/config/security/DaoAuthenticationProvider.java
new file mode 100644
index 0000000..68ba9f5
--- /dev/null
+++ b/xboot-core/src/main/java/cn/exrick/xboot/core/config/security/DaoAuthenticationProvider.java
@@ -0,0 +1,33 @@
+package cn.exrick.xboot.core.config.security;
+
+import cn.hutool.extra.spring.SpringUtil;
+import jodd.util.Base64;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author xfei
+ * @date 2023/4/28 14:13
+ */
+public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
+    @Override
+    protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException {
+        String password= authentication.getCredentials().toString();
+        password = Base64.decodeToString(password);
+        UsernamePasswordAuthenticationToken newAuthentication = new UsernamePasswordAuthenticationToken(authentication.getPrincipal(), password);
+        newAuthentication.setDetails(authentication.getDetails());
+    }
+
+    @Override
+    protected UserDetails retrieveUser(String s, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken) throws AuthenticationException {
+        UserDetails userDetails = SpringUtil.getBean(UserDetailsService.class).loadUserByUsername(s);
+
+
+        return userDetails;
+    }
+}

--
Gitblit v1.9.1