如何在Spring Boot项目中复用独立Spring Security项目的鉴权与权限组件
问题描述
我是Spring框架初学者,目前创建了两个独立项目:
- 项目A:基于Spring Security和JWT搭建,包含User、Permission、Role等鉴权相关实体及对应数据库,负责统一的鉴权与权限管理;
- 项目B:Spring Boot业务后端项目,包含业务表数据库,作为Web应用的后端服务。
两个项目各自拥有独立的控制器和启动类,互相没有依赖导入。我想实现在项目B中复用项目A的JWTFilter鉴权检查逻辑和PermissionEvaluator权限控制能力,并且未来计划将这个Spring Security项目(项目A)复用给多个Spring Boot业务项目。
已调研的可行方案
经过调研,我找到了适配自身场景的解决思路:
- 数据库Schema区分处理:我的业务表和安全表同属一个数据库但分属不同Schema,因此在Spring的
@Table注解中通过添加schema属性指定对应Schema,示例代码如下:@Table(name = "user", schema = "security") public class User { ... } - 跨项目组件与实体可见性处理:通过在项目B的启动类上添加
@ComponentScan、@EnableJpaRepository和@EntityScan注解,指定项目A中相关组件、仓库和实体的包路径,解决跨项目的依赖可见性问题,实现对项目A中鉴权逻辑的复用。
内容的提问来源于stack exchange,提问作者Giuseppe Mondelli
相关产品推荐
相关产品推荐

