feat: 用户的可访问菜单的读取接口
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 @@
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 @@
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 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<CurrentUserResponseData> 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<CurrentUserResponseData>(data);
+ }
+
+ @ApiOperation(
+ tags = { "me" },
+ value = "获取登录用户的访问菜单", notes = "获取登录用户的访问菜单", nickname = "menus"
+ )
+ @RequestMapping(method = RequestMethod.GET, path = "/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ public DefaultApiResponse<GrantedMenusResponseData> menus() {
+
+ String username = CurrentUserUtil.currentUsername();
+
+ List<Permission> menus = authnAccountService.menus(username, "1");
+
+ List<GrantedMenu> 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<GrantedMenusResponseData>(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<String> roles;
+
+ @Getter
+ @Setter
+ private Map<String, Object> 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<AdminAccountRemoteFeignClient> {
+@Component
+public class AuthnAccountRemoteFallbackFactory implements FallbackFactory<AuthnAccountRemoteFeignClient> {
@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<Role> 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<Permission> 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<GrantedMenu> menus;
+
+ public static GrantedMenusResponseData of(List<GrantedMenu> 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 @@
* 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"));
+ }
+
+}