diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/UserController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/UserController.java index 9b4e679..fb01f4d 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/UserController.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/UserController.java @@ -6,6 +6,7 @@ import com.cfive.pinnacle.entity.common.ResponseResult; import com.cfive.pinnacle.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -31,7 +32,13 @@ public class UserController { @GetMapping public ResponseResult getAllUser() { - List users = userService.list(); + List users = userService.getBasicInfo(); return ResponseResult.build(ResponseCode.DATABASE_SELECT_OK, "success", users); } + + @GetMapping("/{id}") + public ResponseResult getUser(@PathVariable int id) { + User user = userService.getBasicInfo(id); + return ResponseResult.build(ResponseCode.DATABASE_SELECT_OK, "success", user); + } } diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/permission/LoginUser.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/permission/LoginUser.java index 9fb57a1..338f644 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/permission/LoginUser.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/permission/LoginUser.java @@ -17,47 +17,99 @@ public class LoginUser implements UserDetails { private Collection authorities; private String password; private String username; - private Boolean accountNonExpired; - private Boolean accountNonLocked; - private Boolean credentialsNonExpired; - private Boolean enabled; + private Boolean accountNonExpired = true; + private Boolean accountNonLocked = true; + private Boolean credentialsNonExpired = true; + private Boolean enabled = true; public LoginUser(User user) { this.user = user; + this.username = user.getUsername(); + this.password = user.getPasswd(); + this.enabled = user.getEnable() == 1; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; } - @Override public Collection getAuthorities() { - return null; + return authorities; + } + + public void setAuthorities(Collection authorities) { + this.authorities = authorities; } - @Override public String getPassword() { - return user.getPasswd(); + return password; + } + + public void setPassword(String password) { + this.password = password; } - @Override public String getUsername() { - return user.getUsername(); + return username; } @Override public boolean isAccountNonExpired() { - return true; + return this.accountNonExpired; } @Override public boolean isAccountNonLocked() { - return true; + return this.accountNonLocked; } @Override public boolean isCredentialsNonExpired() { - return true; + return this.credentialsNonExpired; } @Override public boolean isEnabled() { - return user.getEnable() == 1; + return this.enabled; + } + + public void setUsername(String username) { + this.username = username; + } + + public Boolean getAccountNonExpired() { + return accountNonExpired; + } + + public void setAccountNonExpired(Boolean accountNonExpired) { + this.accountNonExpired = accountNonExpired; + } + + public Boolean getAccountNonLocked() { + return accountNonLocked; + } + + public void setAccountNonLocked(Boolean accountNonLocked) { + this.accountNonLocked = accountNonLocked; + } + + public Boolean getCredentialsNonExpired() { + return credentialsNonExpired; + } + + public void setCredentialsNonExpired(Boolean credentialsNonExpired) { + this.credentialsNonExpired = credentialsNonExpired; + } + + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; } } diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/filter/JwtAuthenticationTokenFilter.java b/Pinnacle/src/main/java/com/cfive/pinnacle/filter/JwtAuthenticationTokenFilter.java index fb8c31a..25d46c6 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/filter/JwtAuthenticationTokenFilter.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/filter/JwtAuthenticationTokenFilter.java @@ -4,6 +4,7 @@ import com.auth0.jwt.interfaces.DecodedJWT; import com.cfive.pinnacle.entity.permission.LoginUser; import com.cfive.pinnacle.utils.JwtUtil; import com.cfive.pinnacle.utils.RedisCache; +import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -44,8 +45,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { } String redisKey = "login:" + userId; - System.out.println(redisCache.getCacheObject(redisKey).toString()); - LoginUser loginUser = redisCache.getCacheObject(redisKey); + LoginUser loginUser = new ObjectMapper().convertValue(redisCache.getCacheObject(redisKey), LoginUser.class); if (Objects.isNull(loginUser)) { throw new RuntimeException("Not logged in"); } diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/IUserService.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/IUserService.java index db5cd39..b68a467 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/IUserService.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/IUserService.java @@ -3,6 +3,8 @@ package com.cfive.pinnacle.service; import com.cfive.pinnacle.entity.User; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 用户 服务类 @@ -12,5 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService; * @since 2023-04-30 */ public interface IUserService extends IService { + List getBasicInfo(); + User getBasicInfo(int id); } diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/UserServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/UserServiceImpl.java index a5ee26f..a921557 100644 --- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/UserServiceImpl.java +++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/UserServiceImpl.java @@ -1,11 +1,15 @@ package com.cfive.pinnacle.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cfive.pinnacle.entity.User; import com.cfive.pinnacle.mapper.UserMapper; import com.cfive.pinnacle.service.IUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 用户 服务实现类 @@ -16,5 +20,29 @@ import org.springframework.stereotype.Service; */ @Service public class UserServiceImpl extends ServiceImpl implements IUserService { + private UserMapper userMapper; + @Autowired + public void setUserMapper(UserMapper userMapper) { + this.userMapper = userMapper; + } + + @Override + public List getBasicInfo() { + List users = userMapper.selectList(null); + users.forEach(user -> { + user.setPasswd(""); + }); + + return users; + } + + @Override + public User getBasicInfo(int id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(User::getId, id); + User user = userMapper.selectOne(wrapper); + user.setPasswd(""); + return user; + } }