From c08dc11e0550d2a32d6d683c034c65718266ba3e Mon Sep 17 00:00:00 2001
From: wangyu <727842003@qq.com>
Date: Mon, 11 Jan 2021 21:36:10 +0800
Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E5=8E=9F=E7=94=9F=E5=86=85?=
=?UTF-8?q?=E7=BD=AE=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E6=90=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
flyfish-user/pom.xml | 1 -
.../framework/config/WebSecurityConfig.java | 3 +-
.../initializer/UserInitializer.java | 55 +++++++++++++++++++
.../framework/service/UserService.java | 30 +---------
4 files changed, 58 insertions(+), 31 deletions(-)
create mode 100644 flyfish-user/src/main/java/com/flyfish/framework/initializer/UserInitializer.java
diff --git a/flyfish-user/pom.xml b/flyfish-user/pom.xml
index 2d32b60..dcb582f 100644
--- a/flyfish-user/pom.xml
+++ b/flyfish-user/pom.xml
@@ -27,7 +27,6 @@
com.flyfish.framework
flyfish-web
${project.version}
- true
diff --git a/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java b/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java
index 45265fe..394d8ec 100644
--- a/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java
+++ b/flyfish-user/src/main/java/com/flyfish/framework/config/WebSecurityConfig.java
@@ -16,6 +16,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.DelegatingPasswordEncoder;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
@@ -44,7 +45,7 @@ public class WebSecurityConfig {
DelegatingPasswordEncoder delegatingPasswordEncoder =
(DelegatingPasswordEncoder) PasswordEncoderFactories.createDelegatingPasswordEncoder();
//设置defaultPasswordEncoderForMatches为NoOpPasswordEncoder
- delegatingPasswordEncoder.setDefaultPasswordEncoderForMatches(NoOpPasswordEncoder.getInstance());
+ delegatingPasswordEncoder.setDefaultPasswordEncoderForMatches(new BCryptPasswordEncoder());
return delegatingPasswordEncoder;
}
diff --git a/flyfish-user/src/main/java/com/flyfish/framework/initializer/UserInitializer.java b/flyfish-user/src/main/java/com/flyfish/framework/initializer/UserInitializer.java
new file mode 100644
index 0000000..7baec21
--- /dev/null
+++ b/flyfish-user/src/main/java/com/flyfish/framework/initializer/UserInitializer.java
@@ -0,0 +1,55 @@
+package com.flyfish.framework.initializer;
+
+import com.flyfish.framework.domain.UserQo;
+import com.flyfish.framework.domain.po.Role;
+import com.flyfish.framework.domain.po.User;
+import com.flyfish.framework.enums.RoleType;
+import com.flyfish.framework.enums.UserStatus;
+import com.flyfish.framework.enums.UserType;
+import com.flyfish.framework.service.UserService;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Arrays;
+
+/**
+ * 用户初始化器,可以重写
+ */
+@Component
+public class UserInitializer {
+
+ @Resource
+ private UserService userService;
+ @Resource
+ private PasswordEncoder passwordEncoder;
+
+ /**
+ * 生成超级管理员
+ */
+ @PostConstruct
+ private void init() {
+ UserQo qo = new UserQo();
+ qo.setUserType(UserType.SUPER_ADMIN.name());
+ if (userService.count(qo) == 0) {
+ User user = new User();
+ user.setUsername("admin");
+ user.setPassword(passwordEncoder.encode("admin"));
+ user.setUserType(UserType.SUPER_ADMIN);
+ user.setEnable(true);
+ user.setApp(false);
+ user.setUserStatus(UserStatus.NORMAL);
+ user.setRoles(Arrays.asList(Role.builder()
+ .type(RoleType.PC)
+ .admin(true)
+ .description("超级管理员")
+ .permissions(Arrays.asList())
+ .build()));
+ user.setPhone("10000000000");
+ user.setName("超级管理员");
+ user.setCode("Administrator");
+ userService.createSelective(user);
+ }
+ }
+}
diff --git a/flyfish-user/src/main/java/com/flyfish/framework/service/UserService.java b/flyfish-user/src/main/java/com/flyfish/framework/service/UserService.java
index 63d3258..ce61d61 100644
--- a/flyfish-user/src/main/java/com/flyfish/framework/service/UserService.java
+++ b/flyfish-user/src/main/java/com/flyfish/framework/service/UserService.java
@@ -1,15 +1,12 @@
package com.flyfish.framework.service;
-import com.flyfish.framework.domain.UserQo;
import com.flyfish.framework.domain.base.Qo;
import com.flyfish.framework.domain.po.User;
-import com.flyfish.framework.enums.UserStatus;
-import com.flyfish.framework.enums.UserType;
import com.flyfish.framework.repository.UserRepository;
import com.flyfish.framework.service.impl.BaseServiceImpl;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
-import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
@@ -17,31 +14,6 @@ import java.util.Optional;
@Service
public class UserService extends BaseServiceImpl {
- @Resource
- private DepartmentService departmentService;
-
- /**
- * 生成超级管理员
- */
- @PostConstruct
- private void init() {
- UserQo qo = new UserQo();
- qo.setUserType(UserType.SUPER_ADMIN.name());
- if (count(qo) == 0) {
- User user = new User();
- user.setUsername("admin");
- user.setPassword("admin");
- user.setUserType(UserType.SUPER_ADMIN);
- user.setEnable(true);
- user.setApp(false);
- user.setUserStatus(UserStatus.NORMAL);
- user.setPhone("10000000000");
- user.setName("超级管理员");
- user.setCode("Administrator");
- createSelective(user);
- }
- }
-
/**
* 获取用户数据
*