From 046a11fd7bd3d544ec9383df8f561534a64c74fa Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Thu, 19 Sep 2019 18:09:32 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E7=94=A8=E6=88=B7=E7=9A=84=E5=8F=AF?= =?utf8?q?=E8=AE=BF=E9=97=AE=E8=8F=9C=E5=8D=95=E7=9A=84=E8=AF=BB=E5=8F=96?= =?utf8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../backend/admin/bff/Application.java | 18 ---- .../controller/biz/AdminBizController.java | 2 +- .../bff/apis/controller/me/MeController.java | 82 +++++++++++++++++++ .../admin/bff/apis/model/base/Account.java | 70 ++++++++++++++++ .../admin/bff/apis/model/base/Permission.java | 64 +++++++++++++++ .../admin/bff/apis/model/base/Role.java | 39 +++++++++ .../admin/bff/apis/model/me/CurrentUser.java | 30 +++++++ .../admin/bff/apis/model/me/GrantedMenu.java | 59 +++++++++++++ .../AuthnAccountRemoteFallbackFactory.java | 60 +++++++++++++- .../admin/AuthnAccountRemoteFeignClient.java | 40 ++++++++- .../service/base/AuthnAccountService.java | 68 +++++++++++++++ .../data/CurrentUserResponseData.java | 23 ++++++ .../data/GrantedMenusResponseData.java | 30 +++++++ .../FeignBasicAuthRequestInterceptor.java | 2 +- .../admin/bff/utils/CurrentUserUtil.java | 26 ++++++ 15 files changed, 587 insertions(+), 26 deletions(-) create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/me/MeController.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Account.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Permission.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Role.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/CurrentUser.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/GrantedMenu.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/base/AuthnAccountService.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/CurrentUserResponseData.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/GrantedMenusResponseData.java create mode 100644 bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/utils/CurrentUserUtil.java diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java index a5098a6..3e63d83 100644 --- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/Application.java @@ -3,10 +3,6 @@ package com.supwisdom.institute.backend.admin.bff; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.context.annotation.Bean; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; import com.supwisdom.infras.online.doc.configuration.EnableInfrasOnlineDoc; import com.supwisdom.institute.backend.common.core.transmit.annotation.EnableSimpleUserTransmit; @@ -25,18 +21,4 @@ public class Application { SpringApplication.run(Application.class, args); } - @Bean - public CorsFilter corsFilter() { - final CorsConfiguration config = new CorsConfiguration(); - // config.setAllowCredentials(true); - config.addAllowedOrigin("*"); - config.addAllowedHeader("*"); - config.addAllowedMethod("*"); - - final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - source.registerCorsConfiguration("/v2/api-docs", config); - - return new CorsFilter(source); - } - } diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java index 8ce27ec..84d17e6 100644 --- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/biz/AdminBizController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RestController; import com.supwisdom.institute.backend.admin.bff.apis.service.biz.BizService; @RestController -@RequestMapping(value = "/api/bff/v1/admin/biz") +@RequestMapping(value = "/v1/admin/biz") public class AdminBizController { @Autowired diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/me/MeController.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/me/MeController.java new file mode 100644 index 0000000..8fbd916 --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/controller/me/MeController.java @@ -0,0 +1,82 @@ +package com.supwisdom.institute.backend.admin.bff.apis.controller.me; + +import java.util.ArrayList; +import java.util.List; + + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.MimeTypeUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + + +import com.supwisdom.institute.backend.admin.bff.apis.model.base.Permission; +import com.supwisdom.institute.backend.admin.bff.apis.model.me.CurrentUser; +import com.supwisdom.institute.backend.admin.bff.apis.model.me.GrantedMenu; +import com.supwisdom.institute.backend.admin.bff.apis.service.base.AuthnAccountService; +import com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data.CurrentUserResponseData; +import com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data.GrantedMenusResponseData; +import com.supwisdom.institute.backend.admin.bff.utils.CurrentUserUtil; +import com.supwisdom.institute.backend.common.core.transmit.user.User; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; + + +@Api(value = "BFFMe", tags = { "me" }, description = "登录用户相关信息的接口") +@RestController +@RequestMapping(value = "/v1/me") +public class MeController { + + @Autowired + private AuthnAccountService authnAccountService; + + @ApiOperation( + tags = { "me" }, + value = "获取登录用户的基本信息", notes = "获取登录用户的基本信息", nickname = "user" + ) + @RequestMapping(method = RequestMethod.GET, path = "/user", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + public DefaultApiResponse user() { + + User user = CurrentUserUtil.currentUser(); + + CurrentUser cu = new CurrentUser(); + cu.setUsername(user.getUsername()); + cu.setRoles(user.getRoles()); + cu.setAttributes(user.getAttributes()); + + // XXX: 如果需要放入其他信息,可以扩展CurrentUser,并从服务接口中获取后写入数据 + + CurrentUserResponseData data = CurrentUserResponseData.of(cu); + return new DefaultApiResponse(data); + } + + @ApiOperation( + tags = { "me" }, + value = "获取登录用户的访问菜单", notes = "获取登录用户的访问菜单", nickname = "menus" + ) + @RequestMapping(method = RequestMethod.GET, path = "/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + public DefaultApiResponse menus() { + + String username = CurrentUserUtil.currentUsername(); + + List menus = authnAccountService.menus(username, "1"); + + List grantedMenus = new ArrayList<>(); + + menus.forEach(m -> { + GrantedMenu grantedMenu = new GrantedMenu(); + grantedMenu = EntityUtils.copy(m, grantedMenu); + grantedMenus.add(grantedMenu); + }); + + GrantedMenusResponseData data = GrantedMenusResponseData.of(grantedMenus); + return new DefaultApiResponse(data); + + } + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Account.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Account.java new file mode 100644 index 0000000..52665e5 --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Account.java @@ -0,0 +1,70 @@ +package com.supwisdom.institute.backend.admin.bff.apis.model.base; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.model.ABaseModel; + +@Getter +@Setter +public class Account extends ABaseModel { + + /** + * + */ + private static final long serialVersionUID = -4889952442290543101L; + + private String id; + + /** + * 用户名 + */ + private String username; + + /** + * 密码 + */ + private String password; + + /** + * 是否可用,1 可用,0 不可用,默认:1 + */ + private Boolean enabled; + /** + * 账号未过期,1 未过期,0 过期,默认:1 + */ + private Boolean accountNonExpired; + /** + * 账号未锁定,1 未锁定,0 锁定,默认:1 + */ + private Boolean accountNonLocked; + /** + * 密码未过期,1 未过期,0 过期,默认:1 + */ + private Boolean credentialsNonExpired; + + /** + * 姓名 + */ + private String name; + + /** + * 备注 + */ + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + private String status; + + /** + * 登录手机 + */ + private String mobile; + /** + * 登录邮箱 + */ + private String email; + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Permission.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Permission.java new file mode 100644 index 0000000..ac0404e --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Permission.java @@ -0,0 +1,64 @@ +package com.supwisdom.institute.backend.admin.bff.apis.model.base; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.model.ABaseModel; + +@Getter +@Setter +public class Permission extends ABaseModel { + + /** + * + */ + private static final long serialVersionUID = -3042842657207449148L; + + private String id; + + /** + * 代码 + */ + private String code; + + /** + * 名称 + */ + private String name; + + /** + * 备注 + */ + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + private String status; + + /** + * 类型(1 应用,2 菜单,3 操作) + */ + private String type; + + /** + * URL地址 + */ + private String url; + + /** + * 系统ID + */ + private String applicationId; + + /** + * 父级ID + */ + private String parentId; + + /** + * 排序 + */ + private Integer order; + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Role.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Role.java new file mode 100644 index 0000000..5d62b6b --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/base/Role.java @@ -0,0 +1,39 @@ +package com.supwisdom.institute.backend.admin.bff.apis.model.base; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.model.ABaseModel; + +@Getter +@Setter +public class Role extends ABaseModel { + + /** + * + */ + private static final long serialVersionUID = -8551951601186240995L; + + private String id; + + /** + * 代码 + */ + private String code; + + /** + * 名称 + */ + private String name; + + /** + * 备注 + */ + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + private String status; + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/CurrentUser.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/CurrentUser.java new file mode 100644 index 0000000..be72993 --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/CurrentUser.java @@ -0,0 +1,30 @@ +package com.supwisdom.institute.backend.admin.bff.apis.model.me; + +import java.util.List; +import java.util.Map; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.model.ABaseModel; + +public class CurrentUser extends ABaseModel { + + /** + * + */ + private static final long serialVersionUID = 2049212615500816301L; + + @Getter + @Setter + private String username; + + @Getter + @Setter + private List roles; + + @Getter + @Setter + private Map attributes; + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/GrantedMenu.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/GrantedMenu.java new file mode 100644 index 0000000..05881ac --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/model/me/GrantedMenu.java @@ -0,0 +1,59 @@ +package com.supwisdom.institute.backend.admin.bff.apis.model.me; + +import com.supwisdom.institute.backend.common.framework.model.ABaseModel; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class GrantedMenu extends ABaseModel { + + /** + * + */ + private static final long serialVersionUID = -1261755008133562980L; + + private String id; + + /** + * 代码 + */ + private String code; + + /** + * 名称 + */ + private String name; + + /** + * 备注 + */ + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + private String status; + + /** + * URL地址 + */ + private String url; + + /** + * 系统ID + */ + private String applicationId; + + /** + * 父级ID + */ + private String parentId; + + /** + * 排序 + */ + private Integer order; + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java index 1ff4981..a7605af 100644 --- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFallbackFactory.java @@ -1,12 +1,66 @@ package com.supwisdom.institute.backend.admin.bff.apis.remote.base.v1.admin; +import org.springframework.stereotype.Component; + +import com.alibaba.fastjson.JSONObject; +import com.supwisdom.institute.backend.admin.bff.apis.remote.exception.FallbackError; + import feign.hystrix.FallbackFactory; -public class AdminAccountRemoteFallbackFactory implements FallbackFactory { +@Component +public class AuthnAccountRemoteFallbackFactory implements FallbackFactory { @Override - public AdminAccountRemoteFeignClient create(Throwable cause) { - return new AdminAccountRemoteFeignClient() { + public AuthnAccountRemoteFeignClient create(Throwable cause) { + return new AuthnAccountRemoteFeignClient() { + + @Override + public JSONObject account(String username) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } + + @Override + public JSONObject roles(String username) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } + + @Override + public JSONObject applications(String username, String applicationId) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } + + @Override + public JSONObject menus(String username, String applicationId) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } + + @Override + public JSONObject operations(String username, String applicationId) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } + + @Override + public JSONObject resources(String username, String applicationId) { + if (cause != null) { + cause.printStackTrace(); + } + return FallbackError.defaultErrorJson(cause); + } }; } diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java index 99b04b8..e73bd54 100644 --- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/remote/base/v1/admin/AuthnAccountRemoteFeignClient.java @@ -1,15 +1,49 @@ package com.supwisdom.institute.backend.admin.bff.apis.remote.base.v1.admin; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import com.alibaba.fastjson.JSONObject; import com.supwisdom.institute.backend.admin.bff.apis.remote.base.configuration.BaseFeignClientConfiguration; @FeignClient( configuration = {BaseFeignClientConfiguration.class}, name = "base-admin-account-remote-feign-client", - url = "${sw-backend-base-api.uri}/v1/admin/accounts", - fallbackFactory = AdminAccountRemoteFallbackFactory.class + url = "${sw-backend-base-api.uri}/v1/authn", + fallbackFactory = AuthnAccountRemoteFallbackFactory.class ) -public interface AdminAccountRemoteFeignClient { +public interface AuthnAccountRemoteFeignClient { + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/account") + JSONObject account( + @PathVariable(name = "username") String username); + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/roles") + JSONObject roles( + @PathVariable(name = "username") String username); + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/applications") + JSONObject applications( + @PathVariable(name = "username") String username, + @RequestParam(name = "applicationId", required = false) String applicationId); + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/menus") + JSONObject menus( + @PathVariable(name = "username") String username, + @RequestParam(name = "applicationId", required = false) String applicationId); + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/operations") + JSONObject operations( + @PathVariable(name = "username") String username, + @RequestParam(name = "applicationId", required = false) String applicationId); + + + @RequestMapping(method = RequestMethod.GET, path = "/{username}/resources") + JSONObject resources( + @PathVariable(name = "username") String username, + @RequestParam(name = "applicationId", required = false) String applicationId); } diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/base/AuthnAccountService.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/base/AuthnAccountService.java new file mode 100644 index 0000000..ff21fa5 --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/service/base/AuthnAccountService.java @@ -0,0 +1,68 @@ +package com.supwisdom.institute.backend.admin.bff.apis.service.base; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.alibaba.fastjson.JSONObject; +import com.supwisdom.institute.backend.admin.bff.apis.model.base.Account; +import com.supwisdom.institute.backend.admin.bff.apis.model.base.Permission; +import com.supwisdom.institute.backend.admin.bff.apis.model.base.Role; +import com.supwisdom.institute.backend.admin.bff.apis.remote.base.v1.admin.AuthnAccountRemoteFeignClient; + +@Service +public class AuthnAccountService { + + @Autowired + private AuthnAccountRemoteFeignClient authnAccountRemote; + + public Account account(String username) { + + JSONObject jsonObject = authnAccountRemote.account(username); + if (jsonObject == null) { + return null; + } + + if (jsonObject.getIntValue("code") == 0) { + JSONObject data = jsonObject.getJSONObject("data"); + + return data.toJavaObject(Account.class); + } + + return null; + } + + public List roles(String username) { + + JSONObject jsonObject = authnAccountRemote.roles(username); + if (jsonObject == null) { + return null; + } + + if (jsonObject.getIntValue("code") == 0) { + JSONObject data = jsonObject.getJSONObject("data"); + + return data.getJSONArray("roles").toJavaList(Role.class); + } + + return null; + } + + public List menus(String username, String applicationId) { + + JSONObject jsonObject = authnAccountRemote.menus(username, applicationId); + if (jsonObject == null) { + return null; + } + + if (jsonObject.getIntValue("code") == 0) { + JSONObject data = jsonObject.getJSONObject("data"); + + return data.getJSONArray("permissions").toJavaList(Permission.class); + } + + return null; + } + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/CurrentUserResponseData.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/CurrentUserResponseData.java new file mode 100644 index 0000000..566972d --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/CurrentUserResponseData.java @@ -0,0 +1,23 @@ +package com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data; + +import org.springframework.beans.BeanUtils; + +import com.supwisdom.institute.backend.admin.bff.apis.model.me.CurrentUser; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class CurrentUserResponseData extends CurrentUser implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = 2296310299015658064L; + + public static CurrentUserResponseData of(CurrentUser currentUser) { + CurrentUserResponseData data = new CurrentUserResponseData(); + + BeanUtils.copyProperties(currentUser, data); + + return data; + } + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/GrantedMenusResponseData.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/GrantedMenusResponseData.java new file mode 100644 index 0000000..c90957c --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/apis/vo/me/response/data/GrantedMenusResponseData.java @@ -0,0 +1,30 @@ +package com.supwisdom.institute.backend.admin.bff.apis.vo.me.response.data; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.admin.bff.apis.model.me.GrantedMenu; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class GrantedMenusResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -7495122676647463043L; + + @Getter + @Setter + private List menus; + + public static GrantedMenusResponseData of(List grantedMenus) { + GrantedMenusResponseData data = new GrantedMenusResponseData(); + + data.setMenus(grantedMenus); + + return data; + } + +} diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/FeignBasicAuthRequestInterceptor.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/FeignBasicAuthRequestInterceptor.java index 2a22b46..191e1e8 100644 --- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/FeignBasicAuthRequestInterceptor.java +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/configuration/FeignBasicAuthRequestInterceptor.java @@ -15,7 +15,7 @@ import java.util.*; * feign请求参数转化 * @author fengpy */ -@Configuration +//@Configuration public class FeignBasicAuthRequestInterceptor implements RequestInterceptor { @Autowired private ObjectMapper objectMapper; diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/utils/CurrentUserUtil.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/utils/CurrentUserUtil.java new file mode 100644 index 0000000..b97e5ae --- /dev/null +++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/utils/CurrentUserUtil.java @@ -0,0 +1,26 @@ +package com.supwisdom.institute.backend.admin.bff.utils; + +import com.supwisdom.institute.backend.common.core.transmit.user.User; +import com.supwisdom.institute.backend.common.core.transmit.user.UserContext; + +public class CurrentUserUtil { + + public static User currentUser() { + User user = UserContext.getUser(); + + if (user == null) { + throw new RuntimeException("current user is null"); + } + + return user; + } + + public static String currentUsername() { + return currentUser().getUsername(); + } + + public static String currentUserAccountId() { + return String.valueOf(currentUser().getAttributes().get("accountId")); + } + +} -- 2.17.1