feat: 完成用户登录
This commit is contained in:
@@ -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 {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -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 {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -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 {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -27,9 +27,9 @@
|
||||
<groupId>com.aos</groupId>
|
||||
<artifactId>aos-swagger</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aos</groupId>
|
||||
<artifactId>aos-web</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.aos</groupId>-->
|
||||
<!-- <artifactId>aos-web</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String> userPrem() {
|
||||
List<String> strings = aosAuthLoginService.userPrem();
|
||||
return strings;
|
||||
}
|
||||
|
||||
@GetMapping(PathConstant.LOGOUT)
|
||||
|
||||
@@ -50,9 +50,9 @@ public class UserController {
|
||||
aosAuthUsersService.deleteUser(ids);
|
||||
}
|
||||
|
||||
@PutMapping(PathConstant.LIST)
|
||||
@PostMapping(PathConstant.LIST)
|
||||
@ApiOperation("获取用户列表")
|
||||
public Page<UserVo> list(@RequestParam(value = "req") UserPageReq req) {
|
||||
public Page<UserVo> list(@RequestBody UserPageReq req) {
|
||||
Page<UserVo> 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<Long> ids) {
|
||||
aosAuthUsersService.resetPassword(ids);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<GrantedAuthority> authorities;
|
||||
|
||||
public SecurityUser(String username, String password, List<GrantedAuthority> 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<GrantedAuthority> 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<Map> permissions = (List<Map>) claimsFromToken.get("authorities");
|
||||
List<Object> authority = permissions.parallelStream()
|
||||
.map(permission -> permission.get("authority"))
|
||||
.collect(Collectors.toList());
|
||||
authorities = AuthorityUtils.createAuthorityList(authority.toArray(new String[0]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+15
-7
@@ -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<AosAuthRolesMapper, AosAuthRoles> implements AosAuthRolesService {
|
||||
final private AosAuthRelationshipService aosAuthRelationshipService;
|
||||
final private AosAuthResourcesService aosAuthResourcesService;
|
||||
|
||||
/**
|
||||
* 通过用户id 关联角色表 获取用户的权限
|
||||
@@ -47,14 +50,19 @@ public class AosAuthRolesServiceImpl extends ServiceImpl<AosAuthRolesMapper, Aos
|
||||
* @Author wangyl
|
||||
*/
|
||||
@Override
|
||||
public Set<String> getUserAuthByUserId(Long userId) {
|
||||
List<AosAuthRoles> roleList = aosAuthRelationshipService.getUserHasRoleIds(Arrays.asList(userId));
|
||||
if (CollectionUtils.isEmpty(roleList)) {
|
||||
log.warn("用户id【{}】,没有获取到角色", userId);
|
||||
return new HashSet<>();
|
||||
public Set<String> getUserAuthByUserId(Long userId, Integer userState) {
|
||||
List<AosAuthResources> roleHasPermsIds = new ArrayList<>();
|
||||
if (Objects.equals(UserStateTypeEnum.ADMIN.getValue(), userState)) {
|
||||
roleHasPermsIds = aosAuthResourcesService.list();
|
||||
} else {
|
||||
List<AosAuthRoles> roleList = aosAuthRelationshipService.getUserHasRoleIds(Arrays.asList(userId));
|
||||
if (CollectionUtils.isEmpty(roleList)) {
|
||||
log.warn("用户id【{}】,没有获取到角色", userId);
|
||||
return new HashSet<>();
|
||||
}
|
||||
Set<Long> roleIds = roleList.stream().map(AosAuthRoles::getId).collect(Collectors.toSet());
|
||||
roleHasPermsIds = aosAuthRelationshipService.getRoleHasPermsIds(roleIds);
|
||||
}
|
||||
Set<Long> roleIds = roleList.stream().map(AosAuthRoles::getId).collect(Collectors.toSet());
|
||||
List<AosAuthResources> roleHasPermsIds = aosAuthRelationshipService.getRoleHasPermsIds(roleIds);
|
||||
Set<String> permsIds = roleHasPermsIds.stream().map(AosAuthResources::getResourcePerms).collect(Collectors.toSet());
|
||||
return permsIds;
|
||||
}
|
||||
|
||||
+36
@@ -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<AosAuthUsersMapper, Aos
|
||||
String account = req.getAccount();
|
||||
String email = req.getEmail();
|
||||
String phone = req.getPhone();
|
||||
req.setPassword("888888");
|
||||
List<Long> roleIds = req.getRoleIds();
|
||||
Boolean exist = this.exist(account, email, phone, null);
|
||||
if (exist) {
|
||||
@@ -184,6 +188,38 @@ public class AosAuthUsersServiceImpl extends ServiceImpl<AosAuthUsersMapper, Aos
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定用户变为admin
|
||||
*
|
||||
* @param userId
|
||||
* @return void
|
||||
* @Date 2022/11/18
|
||||
* @Author wangyl
|
||||
*/
|
||||
@Override
|
||||
public void makeToAdmin(Long userId) {
|
||||
AosAuthUsers aosAuthUsers = new AosAuthUsers();
|
||||
aosAuthUsers.setId(userId);
|
||||
aosAuthUsers.setState(UserStateTypeEnum.ADMIN.getValue());
|
||||
this.updateById(aosAuthUsers);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量重置密码
|
||||
*
|
||||
* @param userIds
|
||||
* @return void
|
||||
* @Date 2022/11/18
|
||||
* @Author wangyl
|
||||
*/
|
||||
@Override
|
||||
public void resetPassword(Collection<Long> userIds) {
|
||||
LambdaUpdateWrapper<AosAuthUsers> aosAuthUsersLambdaUpdateWrapper = Wrappers.lambdaUpdate(AosAuthUsers.class);
|
||||
aosAuthUsersLambdaUpdateWrapper.set(AosAuthUsers::getPassword, passwordEncoder.encode("888888"));
|
||||
aosAuthUsersLambdaUpdateWrapper.in(AosAuthUsers::getId, userIds);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户密码加密
|
||||
*
|
||||
|
||||
+10
@@ -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<String> userPrem() {
|
||||
SecurityUserInfo context = CurrentUserContextHolder.getContext();
|
||||
return context.getAuthorities();
|
||||
}
|
||||
}
|
||||
|
||||
+7
-6
@@ -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<GrantedAuthority> userAuthorities = this.getUserAuthorities(userByAccount.getId());
|
||||
return new SecurityUser(username, userByAccount.getPassword(), userAuthorities);
|
||||
List<GrantedAuthority> 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<GrantedAuthority> getUserAuthorities(Long userId) {
|
||||
Set<String> perms = aosAuthRolesService.getUserAuthByUserId(userId);
|
||||
private List<GrantedAuthority> getUserAuthorities(Long userId, Integer state) {
|
||||
Set<String> perms = aosAuthRolesService.getUserAuthByUserId(userId, state);
|
||||
/**
|
||||
*将 SET 权限信息 转化为标准权限信息
|
||||
*/
|
||||
-13
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-1
@@ -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<String> authorities = s.getAuthorities().stream().map(o -> o.getAuthority()).collect(Collectors.toList());
|
||||
t.setAuthorities(authorities);
|
||||
});
|
||||
CurrentUserContextHolder.setContext(securityUserInfo);
|
||||
}
|
||||
filterChain.doFilter(httpServletRequest, httpServletResponse);
|
||||
|
||||
@@ -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<String> userPrem();
|
||||
|
||||
}
|
||||
|
||||
@@ -19,12 +19,13 @@ public interface AosAuthRolesService extends IService<AosAuthRoles> {
|
||||
/**
|
||||
* 通过用户id 关联角色表 获取用户的权限
|
||||
*
|
||||
* @param userId
|
||||
* @param userId 用户id
|
||||
* @param userState 用户状态
|
||||
* @return java.util.Set<java.lang.String>
|
||||
* @Date 2022/11/12
|
||||
* @Author wangyl
|
||||
*/
|
||||
Set<String> getUserAuthByUserId(Long userId);
|
||||
Set<String> getUserAuthByUserId(Long userId, Integer userState);
|
||||
|
||||
/**
|
||||
* 添加角色
|
||||
|
||||
@@ -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<AosAuthUsers> {
|
||||
* @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<Long> userIds);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user