From d8a687741273d121586b83745280c57f7e9d3297 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期一, 07 八月 2023 17:51:28 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/yuanchu_code/lims-management-system

---
 user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java
new file mode 100644
index 0000000..24b24b1
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/limslaboratory/shiro/realm/ShiroRealm.java
@@ -0,0 +1,41 @@
+package com.yuanchu.limslaboratory.shiro.realm;
+
+import com.yuanchu.limslaboratory.pojo.User;
+import com.yuanchu.limslaboratory.service.UserService;
+import com.yuanchu.limslaboratory.utils.SpringUtil;
+import org.apache.shiro.authc.*;
+import org.apache.shiro.authz.AuthorizationInfo;
+import org.apache.shiro.realm.AuthorizingRealm;
+import org.apache.shiro.subject.PrincipalCollection;
+import org.springframework.util.ObjectUtils;
+
+public class ShiroRealm extends AuthorizingRealm {
+
+    public User user;
+
+    /**
+     * 闄愬畾杩欎釜 Realm 鍙鐞� UsernamePasswordToken
+     */
+    @Override
+    public boolean supports(AuthenticationToken token) {
+        return token instanceof UsernamePasswordToken;
+    }
+
+    @Override
+    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
+        return null;
+    }
+
+    @Override
+    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) {
+        String principal = (String) authenticationToken.getPrincipal();
+        //鑾峰彇UserService瀵硅薄
+        UserService userService = SpringUtil.getBean(UserService.class);
+        user = userService.AccordingUsernameSelectAll(principal);
+        if (!ObjectUtils.isEmpty(user)) {
+            return new SimpleAuthenticationInfo(user.getAccount(), user.getPassword(), this.getName());
+        } else {
+            throw new UnknownAccountException();
+        }
+    }
+}

--
Gitblit v1.9.3