diff --git a/manager/src/main/java/com/zmops/open/manager/controller/UserController.java b/manager/src/main/java/com/zmops/open/manager/controller/UserController.java new file mode 100644 index 0000000..9473cf0 --- /dev/null +++ b/manager/src/main/java/com/zmops/open/manager/controller/UserController.java @@ -0,0 +1,58 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.zmops.open.manager.controller; + +import com.usthe.sureness.subject.SubjectSum; +import com.usthe.sureness.util.SurenessContextHolder; +import com.zmops.open.common.entity.dto.Message; +import com.zmops.open.manager.pojo.dto.UserInfo; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; + +/** + * user info controller + * @author tomsun28 + * @date 18:11 2023-02-14 + */ +@Tag(name = "UserInfo API | 用户信息 API") +@RestController() +@RequestMapping(value = "/api/user", produces = {APPLICATION_JSON_VALUE}) +@Slf4j +public class UserController { + + @GetMapping("") + @Operation(summary = "获取登陆用户信息") + @SuppressWarnings("unchecked") + public ResponseEntity> getUserInfo() { + SubjectSum subjectSum = SurenessContextHolder.getBindSubject(); + List roles = (List) subjectSum.getRoles(); + String username = (String) subjectSum.getPrincipal(); + UserInfo userInfo = UserInfo.builder() + .username(username) + .roles(roles) + .build(); + return ResponseEntity.ok(new Message<>(userInfo)); + } +} diff --git a/manager/src/main/java/com/zmops/open/manager/pojo/dto/UserInfo.java b/manager/src/main/java/com/zmops/open/manager/pojo/dto/UserInfo.java new file mode 100644 index 0000000..b1eb758 --- /dev/null +++ b/manager/src/main/java/com/zmops/open/manager/pojo/dto/UserInfo.java @@ -0,0 +1,22 @@ +package com.zmops.open.manager.pojo.dto; + +import com.zmops.open.common.entity.manager.ParamDefine; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +/** + * @author tom + * @date 2023/2/14 17:54 + */ +@Data +@Builder +@Schema(description = "用户信息实体") +public class UserInfo { + private String username; + + private List roles; + +}