将当前管理员相关的信息、权限等接口,迁移到 Passport 模块,更加统一

This commit is contained in:
YunaiV
2020-07-12 15:06:58 +08:00
parent 74d05557e1
commit 2daea0060d
20 changed files with 277 additions and 245 deletions

View File

@@ -8,7 +8,6 @@ import cn.iocoder.mall.managementweb.controller.admin.dto.AdminPageDTO;
import cn.iocoder.mall.managementweb.controller.admin.dto.AdminUpdateInfoDTO;
import cn.iocoder.mall.managementweb.controller.admin.dto.AdminUpdateStatusDTO;
import cn.iocoder.mall.managementweb.controller.admin.vo.AdminPageItemVO;
import cn.iocoder.mall.managementweb.controller.admin.vo.AdminVO;
import cn.iocoder.mall.managementweb.manager.admin.AdminManager;
import cn.iocoder.mall.security.admin.core.context.AdminSecurityContextHolder;
import cn.iocoder.security.annotations.RequiresPermissions;
@@ -62,12 +61,4 @@ public class AdminController {
return success(true);
}
// =========== 当前管理员 API ===========
@GetMapping("/info")
@ApiOperation(value = "更新管理员状态")
public CommonResult<AdminVO> info() {
return success(adminManager.getAdmin(AdminSecurityContextHolder.getAdminId()));
}
}

View File

@@ -1,13 +0,0 @@
### /passport/login 成功
POST {{baseUrl}}/passport/login
Content-Type: application/x-www-form-urlencoded
username=admin&password=buzhidao
### /passport/login 密码不正确
POST {{baseUrl}}/passport/login
Content-Type: application/x-www-form-urlencoded
username=admin&password=1024
###

View File

@@ -1,36 +0,0 @@
package cn.iocoder.mall.managementweb.controller.passport;
import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.managementweb.controller.passport.dto.AdminPassportLoginDTO;
import cn.iocoder.mall.managementweb.controller.passport.vo.AdminPassportVO;
import cn.iocoder.mall.managementweb.manager.passport.AdminPassportManager;
import cn.iocoder.security.annotations.RequiresNone;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api(tags = "管理员 Passport API")
@RestController
@RequestMapping("/passport")
public class AdminPassportController {
@Autowired
private AdminPassportManager adminPassportManager;
@ApiOperation("账号密码登陆")
@PostMapping("/login")
@RequiresNone
public CommonResult<AdminPassportVO> login(AdminPassportLoginDTO loginDTO,
HttpServletRequest request) {
return success(adminPassportManager.login(loginDTO, HttpUtil.getIp(request)));
}
}

View File

@@ -0,0 +1,27 @@
### /passport/login 成功
POST {{baseUrl}}/passport/login
Content-Type: application/x-www-form-urlencoded
username=admin&password=buzhidao
### /passport/login 密码不正确
POST {{baseUrl}}/passport/login
Content-Type: application/x-www-form-urlencoded
username=admin&password=1024
### /passport/info 成功
GET {{baseUrl}}/passport/info
Authorization: Bearer {{accessToken}}
### /passport/tree-admin-menu 成功
GET {{baseUrl}}/passport/tree-admin-menu
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
### /passport/list-admin-permission 成功
GET {{baseUrl}}/passport/list-admin-permission
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
###

View File

@@ -0,0 +1,61 @@
package cn.iocoder.mall.managementweb.controller.passport;
import cn.iocoder.common.framework.util.HttpUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.managementweb.controller.passport.dto.PassportLoginDTO;
import cn.iocoder.mall.managementweb.controller.passport.vo.PassportAccessTokenVO;
import cn.iocoder.mall.managementweb.controller.passport.vo.PassportAdminMenuTreeNodeVO;
import cn.iocoder.mall.managementweb.controller.passport.vo.PassportAdminVO;
import cn.iocoder.mall.managementweb.manager.passport.PassportManager;
import cn.iocoder.mall.security.admin.core.context.AdminSecurityContextHolder;
import cn.iocoder.security.annotations.RequiresNone;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;
import static cn.iocoder.common.framework.vo.CommonResult.success;
@Api(tags = "管理员 Passport API")
@RestController
@RequestMapping("/passport")
public class PassportController {
@Autowired
private PassportManager passportManager;
@PostMapping("/login")
@ApiOperation("账号密码登陆")
@RequiresNone
public CommonResult<PassportAccessTokenVO> login(PassportLoginDTO loginDTO,
HttpServletRequest request) {
return success(passportManager.login(loginDTO, HttpUtil.getIp(request)));
}
@GetMapping("/info")
@ApiOperation(value = "获得当前管理员信息")
public CommonResult<PassportAdminVO> info() {
return success(passportManager.getAdmin(AdminSecurityContextHolder.getAdminId()));
}
@GetMapping("/tree-admin-menu")
@ApiOperation("获得当前管理员的菜单树")
public CommonResult<List<PassportAdminMenuTreeNodeVO>> treeAdminMenu() {
return success(passportManager.treeAdminMenu(AdminSecurityContextHolder.getAdminId()));
}
@GetMapping("/list-admin-permission")
@ApiOperation("获得当前管理员的权限列表")
public CommonResult<Set<String>> listAdminPermission() {
return success(passportManager.listAdminPermission(AdminSecurityContextHolder.getAdminId()));
}
}

View File

@@ -13,7 +13,7 @@ import java.io.Serializable;
@ApiModel("管理登录 DTO")
@Data
@Accessors(chain = true)
public class AdminPassportLoginDTO implements Serializable {
public class PassportLoginDTO implements Serializable {
@ApiModelProperty(value = "用户名", required = true, example = "yudaoyuanma")
@NotEmpty(message = "登陆账号不能为空")

View File

@@ -1,50 +0,0 @@
package cn.iocoder.mall.managementweb.controller.passport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@ApiModel("管理员通信证信息 VO")
@Data
@Accessors(chain = true)
public class AdminPassportVO {
@ApiModel("认证信息")
@Data
@Accessors(chain = true)
public static class Authentication {
@ApiModelProperty(value = "访问令牌", required = true, example = "001e8f49b20e47f7b3a2de774497cd50")
private String accessToken;
@ApiModelProperty(value = "刷新令牌", required = true, example = "001e8f49b20e47f7b3a2de774497cd50")
private String refreshToken;
@ApiModelProperty(value = "过期时间", required = true)
private Date expiresTime;
}
@ApiModel("管理员信息")
@Data
@Accessors(chain = true)
public static class Admin {
@ApiModelProperty(value = "用户编号", required = true, example = "1")
private Integer id;
@ApiModelProperty(value = "真实姓名", required = true, example = "小王")
private String name;
}
/**
* 管理员信息
*/
private Admin admin;
/**
* 认证信息
*/
private Authentication authorization;
}

View File

@@ -0,0 +1,22 @@
package cn.iocoder.mall.managementweb.controller.passport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@ApiModel("访问令牌信息 VO")
@Data
@Accessors(chain = true)
public class PassportAccessTokenVO {
@ApiModelProperty(value = "访问令牌", required = true, example = "001e8f49b20e47f7b3a2de774497cd50")
private String accessToken;
@ApiModelProperty(value = "刷新令牌", required = true, example = "001e8f49b20e47f7b3a2de774497cd50")
private String refreshToken;
@ApiModelProperty(value = "过期时间", required = true)
private Date expiresTime;
}

View File

@@ -1,4 +1,4 @@
package cn.iocoder.mall.managementweb.controller.permission.vo;
package cn.iocoder.mall.managementweb.controller.passport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -10,7 +10,7 @@ import java.util.List;
@ApiModel(value = "管理员拥有的菜单树", description = "一般用于首页菜单")
@Data
@Accessors(chain = true)
public class AdminMenuTreeNodeVO {
public class PassportAdminMenuTreeNodeVO {
@ApiModelProperty(value = "菜单编号", required = true, example = "1")
private Integer id;
@@ -28,6 +28,6 @@ public class AdminMenuTreeNodeVO {
/**
* 子节点数组
*/
private List<AdminMenuTreeNodeVO> children;
private List<PassportAdminMenuTreeNodeVO> children;
}

View File

@@ -0,0 +1,18 @@
package cn.iocoder.mall.managementweb.controller.passport.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@ApiModel("管理员信息 VO")
@Data
@Accessors(chain = true)
public class PassportAdminVO {
@ApiModelProperty(value = "真实名字", required = true, example = "小王")
private String name;
@ApiModelProperty(value = "头像", required = true, example = "http://www.iocoder.cn/xxx.jpg")
private String avatar;
}

View File

@@ -34,14 +34,4 @@ GET {{baseUrl}}/resource/tree
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
### /resource/tree-admin-menu 成功
GET {{baseUrl}}/resource/tree-admin-menu
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
### /resource/list-admin-permission 成功
GET {{baseUrl}}/resource/list-admin-permission
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {{accessToken}}
###

View File

@@ -3,7 +3,6 @@ package cn.iocoder.mall.managementweb.controller.permission;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.managementweb.controller.permission.dto.ResourceCreateDTO;
import cn.iocoder.mall.managementweb.controller.permission.dto.ResourceUpdateDTO;
import cn.iocoder.mall.managementweb.controller.permission.vo.AdminMenuTreeNodeVO;
import cn.iocoder.mall.managementweb.controller.permission.vo.ResourceTreeNodeVO;
import cn.iocoder.mall.managementweb.controller.permission.vo.ResourceVO;
import cn.iocoder.mall.managementweb.manager.permission.ResourceManager;
@@ -17,7 +16,6 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Set;
import static cn.iocoder.common.framework.vo.CommonResult.success;
@@ -73,18 +71,4 @@ public class ResourceController {
return success(resourceManager.treeResource());
}
// =========== 当前管理员相关 API ===========
@GetMapping("/tree-admin-menu")
@ApiOperation("获得当前登陆的管理员的菜单树")
public CommonResult<List<AdminMenuTreeNodeVO>> treeAdminMenu() {
return success(resourceManager.treeAdminMenu(AdminSecurityContextHolder.getAdminId()));
}
@GetMapping("/list-admin-permission")
@ApiOperation("获得当前登陆的管理员的权限列表")
public CommonResult<Set<String>> listAdminPermission() {
return success(resourceManager.listAdminPermission(AdminSecurityContextHolder.getAdminId()));
}
}