接口定义如下
Contract
@FeignClient(value = "xxx-service",fallbackFactory = ConsumerFallback.class,configuration = { NotBreakerConfiguration.class})public interface Test1Consumer {@ApiOperation(value = "获取数据列表")@GetMapping("/test1/getList")ResponseVO<List<Test1>> getList();}
Server
@Slf4j@RestController@RequestMapping("/test1")public class Test1Controller {@Resourceprivate ITest1Service test1Service;@GetMapping("/getList")public ResponseVO<List<Test1>> getList(){List<Test1> datas = test1Service.getList();ResponseVO<List<Test1>> responseVO = new ResponseVO<>();responseVO.setData(datas);return responseVO;}}
Web
@Slf4j@RestController@RequestMapping("/test1")public class Test1Controller {@Resourceprivate Test1Consumer test1Consumer;@GetMapping("/getList")public ResponseVO<List<Test1>> getList(){return test1Consumer.getList();}}
问题描述
- 没有引入 Activiti7 之前,调用 /test1/getList 能够正常返回数据。
- 引入之后,调用接口报错
{"timestamp": "2025-11-19T07:00:48.589+0000","status": 401,"error": "Unauthorized","message": "Unauthorized","path": "/test1/getList"}
问题分析
Server 服务引入了 Activiti7
<!-- 工作流 --><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.0.0.SR1</version><exclusions><exclusion><artifactId>mybatis</artifactId><groupId>org.mybatis</groupId></exclusion></exclusions></dependency>
Activiti7 包含了 Security
问题解决
在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】 中提到 “activiti 默认集成了 Security 安全框架,当前我们项目里已经集成了 Security 后续设置审批人必须是系统用户否则会报错”
那么解决办法就是排除掉 Security。
参考了 SpringBoot整合Activiti并排除Security(Activiti7) ,在启动类加入以下注解后,问题解决
@SpringBootApplication(exclude = {// activiti 默认集成了 Security 安全框架// 这会导致此服务的所有接口都必须进行校验,否则调用会提示 "status":401,"error":"Unauthorized"// 这里排除掉这个 Security,保证接口能正确调用org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})