Skip to content

Commit

Permalink
support get userinfo endpoint (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomsun28 committed Feb 14, 2023
1 parent 9fee426 commit a4391b9
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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<Message<UserInfo>> getUserInfo() {
SubjectSum subjectSum = SurenessContextHolder.getBindSubject();
List<String> roles = (List<String>) subjectSum.getRoles();
String username = (String) subjectSum.getPrincipal();
UserInfo userInfo = UserInfo.builder()
.username(username)
.roles(roles)
.build();
return ResponseEntity.ok(new Message<>(userInfo));
}
}
Original file line number Diff line number Diff line change
@@ -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<String> roles;

}

0 comments on commit a4391b9

Please sign in to comment.