From a72412ea76015aa84883da72e643c63096c71a24 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 24 四月 2024 09:00:44 +0800 Subject: [PATCH] 认证权限 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 6 deletions(-) diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java index f6207b7..7d55aad 100644 --- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java +++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java @@ -2,14 +2,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.common.utils.JwtUtil; import com.mes.common.utils.RedisUtil; import com.mes.menu.mapper.SysMenuMapper; +import com.mes.role.entity.SysRole; import com.mes.userinfo.entity.LoginUser; import com.mes.userinfo.entity.SysUser; +import com.mes.userinfo.entity.SysUserRole; +import com.mes.userinfo.entity.request.UserRequest; +import com.mes.userinfo.entity.vo.SysUserVO; import com.mes.userinfo.mapper.SysUserMapper; import com.mes.userinfo.service.SysUserService; -import com.mes.utils.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -19,10 +23,12 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -38,6 +44,7 @@ @Autowired private AuthenticationManager authenticationManager; + @Autowired private RedisUtil redisUtil; @@ -45,7 +52,7 @@ private SysMenuMapper sysMenuMapper; @Override - public Result login(SysUser user) { + public Map<String, String> login(SysUser user) { UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword()); Authentication authenticate = authenticationManager.authenticate(authenticationToken); if (Objects.isNull(authenticate)) { @@ -55,24 +62,60 @@ LoginUser loginUser = (LoginUser) authenticate.getPrincipal(); String userId = loginUser.getUser().getId().toString(); String jwt = JwtUtil.createJWT(userId); + + //鏌ヨ鏉冮檺淇℃伅 +// List<String> perms = sysMenuMapper.selectPermsByUserId(userId); //authenticate瀛樺叆redis - redisUtil.setCacheObject("login:" + userId, loginUser); + redisUtil.setCacheObject("login:" + userId, loginUser.getAuthorities()); //鎶妕oken鍝嶅簲缁欏墠绔� HashMap<String, String> map = new HashMap<>(); map.put("token", jwt); - return Result.success(map); + return map; } @Override - public Result logout() { + public String logout() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); Long userid = loginUser.getUser().getId(); redisUtil.deleteObject("login:" + userid); - return Result.success("閫�鍑烘垚鍔�"); + return "娉ㄩ攢鎴愬姛"; } @Override + public SysUserVO saveUser(SysUserVO user) { + return null; + } + + @Override + public SysUserVO updateUser(SysUserVO sysUser) { + return null; + } + + @Override + public List<SysUserVO> listByUserName(UserRequest request) { + MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(SysUser.class) + .selectCollection(SysRole.class, SysUserVO::getRoleList) + .leftJoin(SysUserRole.class, SysUserRole::getUserId, SysUser::getId) + .leftJoin(SysRole.class, SysRole::getId, SysUserRole::getRoleId) + .like(StringUtils.hasText(request.getUserName()), SysUser::getUserName, request.getUserName()); + return baseMapper.selectJoinList(SysUserVO.class, wrapper); + } + + @Override + public String deleteUser(SysUserVO user) { + return null; + } + + /** + * 瀹炵幇UserDetailsService鎺ュ彛锛屼粠鏁版嵁搴撳唴鑾峰彇鐢ㄦ埛鍙婃潈闄愪俊鎭� + * + * @param username + * @return + * @throws UsernameNotFoundException + */ + @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>(); lqw.eq(SysUser::getUserName, username); -- Gitblit v1.8.0