diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminMenuController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminMenuController.java
index 554726c..d4ebef0 100644
--- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminMenuController.java
+++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/admin/AdminMenuController.java
@@ -197,7 +197,7 @@
   @ResponseStatus(value = HttpStatus.OK)
   @ResponseBody
   public DefaultApiResponse<PermissionTreeResponseData> tree(
-      @RequestParam(name = "applicationId", required = false) String applicationId) {
+      @RequestParam(name = "applicationId", required = false, defaultValue = Permission.APPLICATION_ID) String applicationId) {
     
     PermissionTreeNode tree = permissionService.selectPermissionTree(applicationId, Permission.TYPE_MENU);
 
diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java
index 483d55f..d79f298 100644
--- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java
+++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java
@@ -260,7 +260,7 @@
   @ResponseStatus(value = HttpStatus.OK)
   @ResponseBody
   public DefaultApiResponse<AuthnPermissionRoleListResponseData> permissionRoleSets(
-      @RequestParam(name = "applicationId", required = false) String applicationId) {
+      @RequestParam(name = "applicationId", required = false, defaultValue = Permission.APPLICATION_ID) String applicationId) {
     
     Map<String, Object> mapBean = new HashMap<>();
     
@@ -281,11 +281,14 @@
   @ResponseStatus(value = HttpStatus.OK)
   @ResponseBody
   public DefaultApiResponse<AuthnResourceRoleListResponseData> resourceRoleSets(
-      @RequestParam(name = "applicationId", required = false) String applicationId) {
+      @RequestParam(name = "applicationId", required = false, defaultValue = Permission.APPLICATION_ID) String applicationId) {
     
     Map<String, Object> mapBean = new HashMap<>();
     
     mapBean.put("status", "1");
+    if (applicationId != null && !applicationId.isEmpty()) {
+      mapBean.put("applicationId", applicationId);
+    }
     
     List<ResourceRoleSet> resourceRoleSets = resourceService.selectResourceRoleSet(mapBean);
     
diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnResourceController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnResourceController.java
deleted file mode 100644
index f7e6e5a..0000000
--- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnResourceController.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.supwisdom.institute.backend.base.api.v1.controller.authn;
-
-import io.swagger.annotations.Api;
-import lombok.extern.slf4j.Slf4j;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@Api(value = "BaseAuthnResource", tags = { "BaseAuthnResource" }, description = "资源接口（认证、授权用）")
-@Slf4j
-@RestController
-@RequestMapping("/v1/authn/resource")
-public class AuthnResourceController {
-
-}
diff --git a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/api/v1/controller/open/OpenController.java b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/api/v1/controller/open/OpenController.java
index 4944fbd..f008745 100644
--- a/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/api/v1/controller/open/OpenController.java
+++ b/bff/admin/src/main/java/com/supwisdom/institute/backend/admin/bff/api/v1/controller/open/OpenController.java
@@ -8,7 +8,6 @@
 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.supwisdom.institute.backend.admin.bff.api.v1.model.base.PermissionRoleSet;
@@ -33,12 +32,11 @@
       value = "获取菜单", notes = "获取菜单", nickname = "openMenus"
   )
   @RequestMapping(method = RequestMethod.GET, path = "/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
-  public DefaultApiResponse<MenusResponseData> menus(
-      @RequestParam(name = "applicationId", required = false) String applicationId) {
+  public DefaultApiResponse<MenusResponseData> menus() {
     
     List<Menu> menus = new ArrayList<>();
 
-    List<PermissionRoleSet> permissionRoleSets = authnService.getPermissionRoleSets(applicationId);
+    List<PermissionRoleSet> permissionRoleSets = authnService.getPermissionRoleSets("1"); // XXX: applicationId
     if (permissionRoleSets != null) {
       for (PermissionRoleSet permissionRoleSet : permissionRoleSets) {
         Menu menu = new Menu();
