From 8ce4354fd61d2a7cf4f98f9c116d32bb6670c75d Mon Sep 17 00:00:00 2001
From: wyl <959814898@qq.com>
Date: Fri, 18 Nov 2022 00:32:42 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/aos/auth/enums/RelationshipEnum.java | 3 +-
.../aos/auth/enums/RelationshipTypeEnum.java | 3 +-
.../com/aos/auth/enums/ResourceTypeEnum.java | 3 +-
.../com/aos/auth/enums/UserStateTypeEnum.java | 24 +++++++++++
aos-auth-controller/pom.xml | 8 ++--
.../main/java/com/aos/auth/PathConstant.java | 14 +++++++
.../java/com/aos/auth/conf/WebConfig.java | 16 ++++++++
.../aos/auth/controller/LoginController.java | 17 +++++++-
.../aos/auth/controller/UserController.java | 14 ++++++-
.../aos/auth/domain/entity/AosAuthUsers.java | 2 +-
.../auth/domain/security/SecurityUser.java | 40 ++++++++++++++++--
.../com/aos/auth/domain/vo/user/UserVo.java | 41 +++++++++++++++++++
.../service/impl/AosAuthRolesServiceImpl.java | 22 ++++++----
.../service/impl/AosAuthUsersServiceImpl.java | 36 ++++++++++++++++
.../security/AosAuthLoginServiceImpl.java | 10 +++++
.../AosUserDetailServiceImpl.java | 13 +++---
.../security/conf/WebSercurityConfig.java | 13 ------
.../filter/JwtAuthenticationTokenFilter.java | 6 ++-
.../aos/auth/service/AosAuthLoginService.java | 5 +++
.../aos/auth/service/AosAuthRolesService.java | 5 ++-
.../aos/auth/service/AosAuthUsersService.java | 21 ++++++++++
21 files changed, 273 insertions(+), 43 deletions(-)
create mode 100644 aos-auth-common/src/main/java/com/aos/auth/enums/UserStateTypeEnum.java
rename aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/{ => security}/AosUserDetailServiceImpl.java (80%)
diff --git a/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipEnum.java b/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipEnum.java
index 5656d9e..b41f26c 100644
--- a/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipEnum.java
+++ b/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipEnum.java
@@ -1,5 +1,6 @@
package com.aos.auth.enums;
+import com.aos.common.model.AosBaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -10,7 +11,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum RelationshipEnum {
+public enum RelationshipEnum implements AosBaseEnum {
/**
*
*/
diff --git a/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipTypeEnum.java b/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipTypeEnum.java
index 4b74069..f1c65fd 100644
--- a/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipTypeEnum.java
+++ b/aos-auth-common/src/main/java/com/aos/auth/enums/RelationshipTypeEnum.java
@@ -1,5 +1,6 @@
package com.aos.auth.enums;
+import com.aos.common.model.AosBaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -10,7 +11,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum RelationshipTypeEnum {
+public enum RelationshipTypeEnum implements AosBaseEnum {
/**
*
*/
diff --git a/aos-auth-common/src/main/java/com/aos/auth/enums/ResourceTypeEnum.java b/aos-auth-common/src/main/java/com/aos/auth/enums/ResourceTypeEnum.java
index 03e3fa3..e5b8f8b 100644
--- a/aos-auth-common/src/main/java/com/aos/auth/enums/ResourceTypeEnum.java
+++ b/aos-auth-common/src/main/java/com/aos/auth/enums/ResourceTypeEnum.java
@@ -1,5 +1,6 @@
package com.aos.auth.enums;
+import com.aos.common.model.AosBaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -10,7 +11,7 @@ import lombok.Getter;
*/
@AllArgsConstructor
@Getter
-public enum ResourceTypeEnum {
+public enum ResourceTypeEnum implements AosBaseEnum {
/**
*
*/
diff --git a/aos-auth-common/src/main/java/com/aos/auth/enums/UserStateTypeEnum.java b/aos-auth-common/src/main/java/com/aos/auth/enums/UserStateTypeEnum.java
new file mode 100644
index 0000000..f78a9cd
--- /dev/null
+++ b/aos-auth-common/src/main/java/com/aos/auth/enums/UserStateTypeEnum.java
@@ -0,0 +1,24 @@
+package com.aos.auth.enums;
+
+import com.aos.common.model.AosBaseEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author: wangyl
+ * @date: 2022/11/17
+ * @description: 用户状态
+ */
+@Getter
+@AllArgsConstructor
+public enum UserStateTypeEnum implements AosBaseEnum {
+ /**
+ *
+ */
+ ENABLE(1, "启用"),
+ DISABLE(2, "禁用"),
+ ADMIN(3, "管理员"),
+ ;
+ private Integer value;
+ private String desc;
+}
diff --git a/aos-auth-controller/pom.xml b/aos-auth-controller/pom.xml
index 4e94a8b..4f82fa7 100644
--- a/aos-auth-controller/pom.xml
+++ b/aos-auth-controller/pom.xml
@@ -27,9 +27,9 @@
com.aos
aos-swagger
-
- com.aos
- aos-web
-
+
+
+
+
diff --git a/aos-auth-controller/src/main/java/com/aos/auth/PathConstant.java b/aos-auth-controller/src/main/java/com/aos/auth/PathConstant.java
index 93f867c..b75f982 100644
--- a/aos-auth-controller/src/main/java/com/aos/auth/PathConstant.java
+++ b/aos-auth-controller/src/main/java/com/aos/auth/PathConstant.java
@@ -53,6 +53,16 @@ public class PathConstant {
*/
final static public String DETAILS = "details/";
+ /**
+ * admin
+ */
+ final static public String ADMIN = "admin/";
+
+ /**
+ * 重置密码
+ */
+ final static public String REST_PASSWORD = "restPassword/";
+
/**
* 获取列表
*/
@@ -67,4 +77,8 @@ public class PathConstant {
* 获取树
*/
final static public String TREE = "tree/";
+ /**
+ * 当前用户权限
+ */
+ final static public String USER_PREM = "user/prem";
}
diff --git a/aos-auth-controller/src/main/java/com/aos/auth/conf/WebConfig.java b/aos-auth-controller/src/main/java/com/aos/auth/conf/WebConfig.java
index 2130c73..6c3e467 100644
--- a/aos-auth-controller/src/main/java/com/aos/auth/conf/WebConfig.java
+++ b/aos-auth-controller/src/main/java/com/aos/auth/conf/WebConfig.java
@@ -1,9 +1,25 @@
package com.aos.auth.conf;
import com.aos.swagger.enable.EnableSwagger;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
@EnableSwagger(applicationName = "auth", scanPackagesPath = "com.aos.auth.controller")
public class WebConfig {
+
+ /**
+ * @param
+ * @return org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
+ * @Description 密码加密对象
+ * @Date 2019/12/22 17:48
+ * @Author wangyl
+ * @Version V1.0
+ */
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
}
diff --git a/aos-auth-controller/src/main/java/com/aos/auth/controller/LoginController.java b/aos-auth-controller/src/main/java/com/aos/auth/controller/LoginController.java
index 913018e..2f96264 100644
--- a/aos-auth-controller/src/main/java/com/aos/auth/controller/LoginController.java
+++ b/aos-auth-controller/src/main/java/com/aos/auth/controller/LoginController.java
@@ -2,21 +2,36 @@ package com.aos.auth.controller;
import com.aos.auth.PathConstant;
import com.aos.auth.domain.req.user.LoginUseReq;
+import com.aos.auth.service.AosAuthLoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
@RestController
@RequestMapping(PathConstant.BASE_API)
@Api(tags = "用户登录接口")
@Slf4j
+@RequiredArgsConstructor(onConstructor__ = @Autowired)
public class LoginController {
+ private final AosAuthLoginService aosAuthLoginService;
@PostMapping(PathConstant.LOGIN)
@ApiOperation("登录")
public String login(@RequestBody LoginUseReq loginUseReq) {
- return "ok1";
+ String token = aosAuthLoginService.login(loginUseReq);
+ return token;
+ }
+
+ @GetMapping(PathConstant.USER_PREM)
+ @ApiOperation("获取当前用户权限码")
+ public List userPrem() {
+ List strings = aosAuthLoginService.userPrem();
+ return strings;
}
@GetMapping(PathConstant.LOGOUT)
diff --git a/aos-auth-controller/src/main/java/com/aos/auth/controller/UserController.java b/aos-auth-controller/src/main/java/com/aos/auth/controller/UserController.java
index 6772a5c..d818b4d 100644
--- a/aos-auth-controller/src/main/java/com/aos/auth/controller/UserController.java
+++ b/aos-auth-controller/src/main/java/com/aos/auth/controller/UserController.java
@@ -50,9 +50,9 @@ public class UserController {
aosAuthUsersService.deleteUser(ids);
}
- @PutMapping(PathConstant.LIST)
+ @PostMapping(PathConstant.LIST)
@ApiOperation("获取用户列表")
- public Page list(@RequestParam(value = "req") UserPageReq req) {
+ public Page list(@RequestBody UserPageReq req) {
Page userVoPage = aosAuthUsersService.pageList(req);
return userVoPage;
}
@@ -64,5 +64,15 @@ public class UserController {
return userVo;
}
+ @GetMapping(PathConstant.ADMIN)
+ @ApiOperation("升级为管理员")
+ public void makeToAdmin(@RequestParam(value = "userId") Long userId) {
+ aosAuthUsersService.makeToAdmin(userId);
+ }
+ @PostMapping(PathConstant.REST_PASSWORD)
+ @ApiOperation("重置密码")
+ public void restPassword(@RequestBody List ids) {
+ aosAuthUsersService.resetPassword(ids);
+ }
}
diff --git a/aos-auth-domain/src/main/java/com/aos/auth/domain/entity/AosAuthUsers.java b/aos-auth-domain/src/main/java/com/aos/auth/domain/entity/AosAuthUsers.java
index 231df90..afa424d 100644
--- a/aos-auth-domain/src/main/java/com/aos/auth/domain/entity/AosAuthUsers.java
+++ b/aos-auth-domain/src/main/java/com/aos/auth/domain/entity/AosAuthUsers.java
@@ -54,7 +54,7 @@ public class AosAuthUsers extends BaseEntity implements Serializable {
private String phone;
/**
- * 0 失效 1 启用
+ * 1 启用 2 停用 3 管理员
*/
@TableField(value = "state")
private Integer state;
diff --git a/aos-auth-domain/src/main/java/com/aos/auth/domain/security/SecurityUser.java b/aos-auth-domain/src/main/java/com/aos/auth/domain/security/SecurityUser.java
index 1363207..6c5c0bd 100644
--- a/aos-auth-domain/src/main/java/com/aos/auth/domain/security/SecurityUser.java
+++ b/aos-auth-domain/src/main/java/com/aos/auth/domain/security/SecurityUser.java
@@ -5,9 +5,12 @@ import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* @author wangyl
@@ -19,6 +22,10 @@ import java.util.List;
@Data
@AllArgsConstructor
public class SecurityUser implements UserDetails {
+ /**
+ * 用户id
+ */
+ private Long id;
/**
* 用户名
*/
@@ -27,6 +34,15 @@ public class SecurityUser implements UserDetails {
* 用户密码
*/
private String password;
+ /**
+ * 邮箱
+ */
+ private String email;
+ /**
+ * 手机号
+ */
+ private String phone;
+
/**
* 账户是否未过期,过期无法验证
*/
@@ -43,18 +59,36 @@ public class SecurityUser implements UserDetails {
* 是否可用
*/
private Boolean isEnabled;
+
/**
* 权限列表
*/
private List authorities;
- public SecurityUser(String username, String password, List authorities) {
- this(username, password, true, true, true, true, authorities);
+ /**
+ * 用户状态 1启用 2停用 3管理员
+ */
+ private Integer state;
+
+ public SecurityUser(Long id, String username, String password, String email, String phone, Integer state, List authorities) {
+ this(id, username, password, email, phone, true, true, true, true, authorities, state);
}
public SecurityUser(String token) {
Claims claimsFromToken = TokenUtilBase.getClaimsFromToken(token);
- claimsFromToken.get("username");
+ id = claimsFromToken.get("id", Long.class);
+ username = claimsFromToken.get("username", String.class);
+ email = claimsFromToken.get("email", String.class);
+ phone = claimsFromToken.get("phone", String.class);
+ isAccountNonExpired = claimsFromToken.get("isAccountNonExpired", Boolean.class);
+ isAccountNonLocked = claimsFromToken.get("isAccountNonLocked", Boolean.class);
+ isCredentialsNonExpired = claimsFromToken.get("isCredentialsNonExpired", Boolean.class);
+ isEnabled = claimsFromToken.get("isEnabled", Boolean.class);
+ List