權限控制是 Web 應用安全的基石。本文系統梳理三大主流實現方案,並給出生產級數據庫設計雛形,為後續細節實作奠基。
核心機制:配置兩個攔截器——LoginInterceptor 驗證登錄態,PermissionInterceptor 匹配 URL 權限。通過「角色-權限-資源」映射表,將請求 URL 與配置的權限 URL 模式匹配。
/admin/* 繞過);維護成本隨系統膨脹急劇上升。核心機制:基於 Servlet Filter 鏈,提供認證、授權、CSRF、Session 管理、OAuth2、LDAP 等開箱即用功能。核心組件:FilterChainProxy、AuthenticationManager、AccessDecisionManager。
核心機制:核心三件套——Subject(用戶主體)、SecurityManager(安全管理器)、Realm(數據源適配)。不依賴 Spring,可獨立運行,亦可輕鬆整合。
採用經典 RBAC(基於角色的訪問控制) 模型,支撐「用戶-角色-權限-資源」四元關係。下圖為核心表結構 ER 圖(普通版,後續將擴展字段支撐數據權限、租戶隔離等):

| 表名 | 職責 | 關鍵字段 |
|---|---|---|
sys_user | 用戶主表 | id, username, password, salt, status, create_time |
sys_role | 角色定義 | id, code, name, description, data_scope |
sys_permission | 權限/資源定義 | id, parent_id, type(menu/button/api), path, perms, component |
sys_user_role | 用戶-角色關聯 | user_id, role_id |
sys_role_permission | 角色-權限關聯 | role_id, permission_id |
sys_role.data_scope:數據權限範圍(1全部 2本部門 3本部門及子部門 4僅本人)sys_permission.type:區分菜單、按鈕、API 接口,支撐前端路由動態生成與後端精細攔截sys_tenant + 關聯表:多租戶隔離支撐下篇將深入實戰:
Realm 實現(含緩存、加密、會話管理)v-permission)與路由守衛實現