From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Config/Oauth2/UserServiceDetail.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Config/Oauth2/UserServiceDetail.java b/src/main/java/com/gk/firework/Config/Oauth2/UserServiceDetail.java
new file mode 100644
index 0000000..9710d94
--- /dev/null
+++ b/src/main/java/com/gk/firework/Config/Oauth2/UserServiceDetail.java
@@ -0,0 +1,56 @@
+package com.gk.firework.Config.Oauth2;
+
+import com.gk.firework.Domain.UserInfo;
+import com.gk.firework.Domain.Utils.CommonUtil;
+import com.gk.firework.Domain.Utils.Constants;
+import com.gk.firework.Service.UserService;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * 加载用户特定数据的核心接口(Core interface which loads user-specific data.)
+ *
+ * @author zhangby
+ * @date 2019-05-14 09:49
+ */
+@Service
+public class UserServiceDetail implements UserDetailsService {
+
+ @Autowired
+ UserService userService;
+
+ /**
+ * 根据用户名查询用户
+ */
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ String authType = System.getProperty(Constants.AUTH_TYPE);
+ OauthUser oauthUser = new OauthUser();
+ //查询登录用户
+ UserInfo userInfo = userService.selectByLoginname(username);
+ Optional.of(userInfo).ifPresent(us ->{
+ //查询角色
+ List<OauthRole> roleByUser = userService.selectRoleByUser(us.getId().intValue());
+ //数据类型转换
+ List<OauthRole> oauthRoles = CommonUtil
+ .convers(roleByUser, role -> new OauthRole(
+ role.getId(),
+ role.getAuthority(),null,null)
+ );
+ //数据结果集封装
+ oauthUser.setId(us.getId().toString());
+ oauthUser.setPassword(us.getPassword());
+ oauthUser.setUsername(us.getUsername());
+ oauthUser.setOauthRoles(oauthRoles);
+ });
+ //判断登录入口
+ return oauthUser;
+ }
+}
--
Gitblit v1.9.2