diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java index c88683e..65e9d4c 100644 --- a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java @@ -2,14 +2,12 @@ package day.gitlab.dolphin.auth.controller; import day.gitlab.dolphin.auth.entity.dto.LoginDTO; 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.common.core.entity.Result; import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore; import jakarta.annotation.Resource; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/auth") @@ -23,4 +21,9 @@ public class AuthController { public Result login(@RequestBody LoginDTO loginDTO) { return Result.success(authService.login(loginDTO)); } + + @GetMapping("/getUserInfo") + public Result getUserInfo() { + return Result.success(authService.getUserInfo()); + } } diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/UserInfoVO.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/UserInfoVO.java new file mode 100644 index 0000000..d3f631e --- /dev/null +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/UserInfoVO.java @@ -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 authorities; +} diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java index 2735034..b77ac10 100644 --- a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java @@ -2,8 +2,11 @@ package day.gitlab.dolphin.auth.service; import day.gitlab.dolphin.auth.entity.dto.LoginDTO; import day.gitlab.dolphin.auth.entity.vo.LoginVO; +import day.gitlab.dolphin.auth.entity.vo.UserInfoVO; public interface AuthService { LoginVO login(LoginDTO loginDTO); + + UserInfoVO getUserInfo(); } diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java index 0b41636..cb63161 100644 --- a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java @@ -3,10 +3,13 @@ package day.gitlab.dolphin.auth.service.impl; import day.gitlab.dolphin.auth.constants.Exceptions; import day.gitlab.dolphin.auth.entity.dto.LoginDTO; 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.common.core.i18n.MessagesHelper; 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.SecurityContextHolder; import day.gitlab.dolphin.common.security.UserPrincipal; import day.gitlab.dolphin.common.security.jwt.JwtInfo; import day.gitlab.dolphin.rbac.constants.UserEnabled; @@ -48,6 +51,16 @@ public class AuthServiceImpl implements AuthService, AuthenticationProvider { .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 public UserPrincipal getUserPrincipal(String userId) { User user = userMapper.selectOneById(userId);