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 permissions = (List) claimsFromToken.get("authorities"); + List authority = permissions.parallelStream() + .map(permission -> permission.get("authority")) + .collect(Collectors.toList()); + authorities = AuthorityUtils.createAuthorityList(authority.toArray(new String[0])); } /** diff --git a/aos-auth-domain/src/main/java/com/aos/auth/domain/vo/user/UserVo.java b/aos-auth-domain/src/main/java/com/aos/auth/domain/vo/user/UserVo.java index 480532c..affde21 100644 --- a/aos-auth-domain/src/main/java/com/aos/auth/domain/vo/user/UserVo.java +++ b/aos-auth-domain/src/main/java/com/aos/auth/domain/vo/user/UserVo.java @@ -1,4 +1,45 @@ package com.aos.auth.domain.vo.user; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "用户信息") public class UserVo { + /** + * 用户自增id + */ + @ApiModelProperty(value = "id") + private Long id; + + /** + * 登录id + */ + @ApiModelProperty(value = "account") + private String account; + + /** + * 用户名称 + */ + @ApiModelProperty(value = "name") + private String name; + + /** + * 用户邮箱 + */ + @ApiModelProperty(value = "email") + private String email; + + /** + * 手机号 + */ + @ApiModelProperty(value = "phone") + private String phone; + + /** + * 0 失效 1 启用 + */ + @ApiModelProperty(value = "state") + private Integer state; } diff --git a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthRolesServiceImpl.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthRolesServiceImpl.java index b8bf025..0f461e4 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthRolesServiceImpl.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthRolesServiceImpl.java @@ -8,8 +8,10 @@ import com.aos.auth.domain.vo.role.RoleVo; import com.aos.auth.enums.RelationshipEnum; import com.aos.auth.enums.RelationshipTypeEnum; import com.aos.auth.enums.RoleEnableEnum; +import com.aos.auth.enums.UserStateTypeEnum; import com.aos.auth.mapper.AosAuthRolesMapper; import com.aos.auth.service.AosAuthRelationshipService; +import com.aos.auth.service.AosAuthResourcesService; import com.aos.auth.service.AosAuthRolesService; import com.aos.common.copy.AosBeanUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -37,6 +39,7 @@ import java.util.stream.Collectors; @Slf4j public class AosAuthRolesServiceImpl extends ServiceImpl implements AosAuthRolesService { final private AosAuthRelationshipService aosAuthRelationshipService; + final private AosAuthResourcesService aosAuthResourcesService; /** * 通过用户id 关联角色表 获取用户的权限 @@ -47,14 +50,19 @@ public class AosAuthRolesServiceImpl extends ServiceImpl getUserAuthByUserId(Long userId) { - List roleList = aosAuthRelationshipService.getUserHasRoleIds(Arrays.asList(userId)); - if (CollectionUtils.isEmpty(roleList)) { - log.warn("用户id【{}】,没有获取到角色", userId); - return new HashSet<>(); + public Set getUserAuthByUserId(Long userId, Integer userState) { + List roleHasPermsIds = new ArrayList<>(); + if (Objects.equals(UserStateTypeEnum.ADMIN.getValue(), userState)) { + roleHasPermsIds = aosAuthResourcesService.list(); + } else { + List roleList = aosAuthRelationshipService.getUserHasRoleIds(Arrays.asList(userId)); + if (CollectionUtils.isEmpty(roleList)) { + log.warn("用户id【{}】,没有获取到角色", userId); + return new HashSet<>(); + } + Set roleIds = roleList.stream().map(AosAuthRoles::getId).collect(Collectors.toSet()); + roleHasPermsIds = aosAuthRelationshipService.getRoleHasPermsIds(roleIds); } - Set roleIds = roleList.stream().map(AosAuthRoles::getId).collect(Collectors.toSet()); - List roleHasPermsIds = aosAuthRelationshipService.getRoleHasPermsIds(roleIds); Set permsIds = roleHasPermsIds.stream().map(AosAuthResources::getResourcePerms).collect(Collectors.toSet()); return permsIds; } diff --git a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthUsersServiceImpl.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthUsersServiceImpl.java index 1ca0465..749331d 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthUsersServiceImpl.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosAuthUsersServiceImpl.java @@ -6,11 +6,13 @@ import com.aos.auth.domain.req.user.UserReq; import com.aos.auth.domain.vo.user.UserVo; import com.aos.auth.enums.RelationshipEnum; import com.aos.auth.enums.RelationshipTypeEnum; +import com.aos.auth.enums.UserStateTypeEnum; import com.aos.auth.mapper.AosAuthUsersMapper; import com.aos.auth.service.AosAuthRelationshipService; import com.aos.auth.service.AosAuthUsersService; import com.aos.common.copy.AosBeanUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -24,6 +26,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Objects; @@ -115,6 +118,7 @@ public class AosAuthUsersServiceImpl extends ServiceImpl roleIds = req.getRoleIds(); Boolean exist = this.exist(account, email, phone, null); if (exist) { @@ -184,6 +188,38 @@ public class AosAuthUsersServiceImpl extends ServiceImpl userIds) { + LambdaUpdateWrapper aosAuthUsersLambdaUpdateWrapper = Wrappers.lambdaUpdate(AosAuthUsers.class); + aosAuthUsersLambdaUpdateWrapper.set(AosAuthUsers::getPassword, passwordEncoder.encode("888888")); + aosAuthUsersLambdaUpdateWrapper.in(AosAuthUsers::getId, userIds); + + } + /** * 用户密码加密 * diff --git a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosAuthLoginServiceImpl.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosAuthLoginServiceImpl.java index cd6ef32..45ed9bb 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosAuthLoginServiceImpl.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosAuthLoginServiceImpl.java @@ -3,6 +3,8 @@ package com.aos.auth.service.impl.security; import com.aos.auth.domain.req.user.LoginUseReq; import com.aos.auth.domain.security.SecurityUser; import com.aos.auth.service.AosAuthLoginService; +import com.aos.common.model.context.CurrentUserContextHolder; +import com.aos.common.model.context.SecurityUserInfo; import com.aos.common.token.TokenUtilBase; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -12,6 +14,8 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author: wangyl * @date: 2022/11/12 @@ -45,4 +49,10 @@ public class AosAuthLoginServiceImpl implements AosAuthLoginService { String token = TokenUtilBase.generateToken(beanMap); return token; } + + @Override + public List userPrem() { + SecurityUserInfo context = CurrentUserContextHolder.getContext(); + return context.getAuthorities(); + } } diff --git a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosUserDetailServiceImpl.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosUserDetailServiceImpl.java similarity index 80% rename from aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosUserDetailServiceImpl.java rename to aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosUserDetailServiceImpl.java index 285e957..210c55a 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/AosUserDetailServiceImpl.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/AosUserDetailServiceImpl.java @@ -1,7 +1,8 @@ -package com.aos.auth.service.impl; +package com.aos.auth.service.impl.security; import com.aos.auth.domain.entity.AosAuthUsers; import com.aos.auth.domain.security.SecurityUser; +import com.aos.auth.enums.UserStateTypeEnum; import com.aos.auth.service.AosAuthRolesService; import com.aos.auth.service.AosAuthUsersService; import lombok.RequiredArgsConstructor; @@ -34,14 +35,14 @@ public class AosUserDetailServiceImpl implements UserDetailsService { @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { AosAuthUsers userByAccount = aosAuthUsersService.getUserByAccount(username); - if (Objects.isNull(userByAccount)) { + if (Objects.isNull(userByAccount) || Objects.equals(UserStateTypeEnum.DISABLE.getValue(), userByAccount.getState())) { /** * TODO 分装异常 */ throw new UsernameNotFoundException(""); } - List userAuthorities = this.getUserAuthorities(userByAccount.getId()); - return new SecurityUser(username, userByAccount.getPassword(), userAuthorities); + List userAuthorities = this.getUserAuthorities(userByAccount.getId(), userByAccount.getState()); + return new SecurityUser(userByAccount.getId(), userByAccount.getName(), userByAccount.getPassword(), userByAccount.getEmail(), userByAccount.getPhone(), userByAccount.getState(), userAuthorities); } /** @@ -52,8 +53,8 @@ public class AosUserDetailServiceImpl implements UserDetailsService { * @Date 2022/11/12 . * @Author wangyl */ - private List getUserAuthorities(Long userId) { - Set perms = aosAuthRolesService.getUserAuthByUserId(userId); + private List getUserAuthorities(Long userId, Integer state) { + Set perms = aosAuthRolesService.getUserAuthByUserId(userId, state); /** *将 SET 权限信息 转化为标准权限信息 */ diff --git a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/conf/WebSercurityConfig.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/conf/WebSercurityConfig.java index a7c12e9..682b125 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/conf/WebSercurityConfig.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/conf/WebSercurityConfig.java @@ -110,17 +110,4 @@ public class WebSercurityConfig extends WebSecurityConfigurerAdapter { return super.authenticationManagerBean(); } - /** - * @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-service-impl/src/main/java/com/aos/auth/service/impl/security/filter/JwtAuthenticationTokenFilter.java b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/filter/JwtAuthenticationTokenFilter.java index e88b7c5..fa699d8 100644 --- a/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/filter/JwtAuthenticationTokenFilter.java +++ b/aos-auth-service-impl/src/main/java/com/aos/auth/service/impl/security/filter/JwtAuthenticationTokenFilter.java @@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; /** * @author wyl @@ -59,7 +60,10 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { /** * 用户基础信息放入本地缓存 */ - SecurityUserInfo securityUserInfo = AosBeanUtils.copyProperties(securityUser, SecurityUserInfo::new); + SecurityUserInfo securityUserInfo = AosBeanUtils.copyProperties(securityUser, SecurityUserInfo::new, (s, t) -> { + List authorities = s.getAuthorities().stream().map(o -> o.getAuthority()).collect(Collectors.toList()); + t.setAuthorities(authorities); + }); CurrentUserContextHolder.setContext(securityUserInfo); } filterChain.doFilter(httpServletRequest, httpServletResponse); diff --git a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthLoginService.java b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthLoginService.java index 6b4be7d..a4f586c 100644 --- a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthLoginService.java +++ b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthLoginService.java @@ -2,6 +2,8 @@ package com.aos.auth.service; import com.aos.auth.domain.req.user.LoginUseReq; +import java.util.List; + /** * @author: wangyl * @date: 2022/11/12 @@ -17,4 +19,7 @@ public interface AosAuthLoginService { * @Author wangyl */ String login(LoginUseReq loginUseReq); + + List userPrem(); + } diff --git a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthRolesService.java b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthRolesService.java index 45fc903..b5708b1 100644 --- a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthRolesService.java +++ b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthRolesService.java @@ -19,12 +19,13 @@ public interface AosAuthRolesService extends IService { /** * 通过用户id 关联角色表 获取用户的权限 * - * @param userId + * @param userId 用户id + * @param userState 用户状态 * @return java.util.Set * @Date 2022/11/12 * @Author wangyl */ - Set getUserAuthByUserId(Long userId); + Set getUserAuthByUserId(Long userId, Integer userState); /** * 添加角色 diff --git a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthUsersService.java b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthUsersService.java index 4cfb236..7eeef79 100644 --- a/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthUsersService.java +++ b/aos-auth-service/src/main/java/com/aos/auth/service/AosAuthUsersService.java @@ -7,6 +7,7 @@ import com.aos.auth.domain.vo.user.UserVo; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; import java.util.List; /** @@ -87,4 +88,24 @@ public interface AosAuthUsersService extends IService { * @Author wangyl */ void updateUser(UserReq req); + + /** + * 指定用户变为admin + * + * @param userId + * @return void + * @Date 2022/11/18 + * @Author wangyl + */ + void makeToAdmin(Long userId); + + /** + * 批量重置密码 + * + * @param userIds + * @return void + * @Date 2022/11/18 + * @Author wangyl + */ + void resetPassword(Collection userIds); }