feat: 获取用户信息接口
This commit is contained in:
@ -2,14 +2,12 @@ package day.gitlab.dolphin.auth.controller;
|
|||||||
|
|
||||||
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
||||||
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
||||||
|
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
|
||||||
import day.gitlab.dolphin.auth.service.AuthService;
|
import day.gitlab.dolphin.auth.service.AuthService;
|
||||||
import day.gitlab.dolphin.common.core.entity.Result;
|
import day.gitlab.dolphin.common.core.entity.Result;
|
||||||
import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore;
|
import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/auth")
|
@RequestMapping("/auth")
|
||||||
@ -23,4 +21,9 @@ public class AuthController {
|
|||||||
public Result<LoginVO> login(@RequestBody LoginDTO loginDTO) {
|
public Result<LoginVO> login(@RequestBody LoginDTO loginDTO) {
|
||||||
return Result.success(authService.login(loginDTO));
|
return Result.success(authService.login(loginDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getUserInfo")
|
||||||
|
public Result<UserInfoVO> getUserInfo() {
|
||||||
|
return Result.success(authService.getUserInfo());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
package day.gitlab.dolphin.auth.entity.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserInfoVO {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private List<String> authorities;
|
||||||
|
}
|
||||||
@ -2,8 +2,11 @@ package day.gitlab.dolphin.auth.service;
|
|||||||
|
|
||||||
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
||||||
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
||||||
|
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
|
||||||
|
|
||||||
public interface AuthService {
|
public interface AuthService {
|
||||||
|
|
||||||
LoginVO login(LoginDTO loginDTO);
|
LoginVO login(LoginDTO loginDTO);
|
||||||
|
|
||||||
|
UserInfoVO getUserInfo();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,10 +3,13 @@ package day.gitlab.dolphin.auth.service.impl;
|
|||||||
import day.gitlab.dolphin.auth.constants.Exceptions;
|
import day.gitlab.dolphin.auth.constants.Exceptions;
|
||||||
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
|
||||||
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
|
||||||
|
import day.gitlab.dolphin.auth.entity.vo.UserInfoVO;
|
||||||
import day.gitlab.dolphin.auth.service.AuthService;
|
import day.gitlab.dolphin.auth.service.AuthService;
|
||||||
import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
|
import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
|
||||||
import day.gitlab.dolphin.common.core.util.BCrypt;
|
import day.gitlab.dolphin.common.core.util.BCrypt;
|
||||||
|
import day.gitlab.dolphin.common.security.Authentication;
|
||||||
import day.gitlab.dolphin.common.security.AuthenticationProvider;
|
import day.gitlab.dolphin.common.security.AuthenticationProvider;
|
||||||
|
import day.gitlab.dolphin.common.security.SecurityContextHolder;
|
||||||
import day.gitlab.dolphin.common.security.UserPrincipal;
|
import day.gitlab.dolphin.common.security.UserPrincipal;
|
||||||
import day.gitlab.dolphin.common.security.jwt.JwtInfo;
|
import day.gitlab.dolphin.common.security.jwt.JwtInfo;
|
||||||
import day.gitlab.dolphin.rbac.constants.UserEnabled;
|
import day.gitlab.dolphin.rbac.constants.UserEnabled;
|
||||||
@ -48,6 +51,16 @@ public class AuthServiceImpl implements AuthService, AuthenticationProvider {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserInfoVO getUserInfo() {
|
||||||
|
Authentication authentication = SecurityContextHolder.getAuthentication();
|
||||||
|
return UserInfoVO.builder()
|
||||||
|
.id(authentication.getUserPrincipal().getId())
|
||||||
|
.username(authentication.getUserPrincipal().getNickname())
|
||||||
|
.authorities(authentication.getUserAuthorities())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserPrincipal getUserPrincipal(String userId) {
|
public UserPrincipal getUserPrincipal(String userId) {
|
||||||
User user = userMapper.selectOneById(userId);
|
User user = userMapper.selectOneById(userId);
|
||||||
|
|||||||
Reference in New Issue
Block a user