项目场景:
最近在学习使用spring boot整合activiti实现工作流程自动化。刚开始从网上copy了一个模板,把所有的环境都搭建好后测试运行没什么问题,数据表也全部创建完成。但是第二天来跑时就产生了异常。
版本控制:idea 2021+activiti BPMN visualizer
问题描述
异常情况如下:
Parameter 0 of method userGroupManager in org.activiti.core.common.spring.identity.config.ActivitiSpringIdentityAutoConfiguration required a bean of type 'org.springframework.security.core.userdetails.UserDetailsService' that could not be found.
原因分析:
从异常描述中可知,spring搜索不到UserDetailsService bean对象。
后来通过逐步排查发现,该异常的产生是受到了activiti坐标的影响。
解决方案:
引入security坐标。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
补充:
在解决以上问题后由于Activiti 启动器提供了一个 Spring Boot 自动配置类,它使用HTTP basic身份验证保护所有 REST 端点,所以在发送请求时需要设置相关的身份信息,否则会造成401错误。提示如下:
Using generated security password: 0a7a2af2-8309-484c-8599-33ea62ddb0b9
This generated password is for development use only. Your security configuration must be updated before running your application in production.
如果我们想使用不同的安全配置而不是 HTTP Basic 身份验证,可以关闭禁用springsecurity,之后就可以不带验证的访问服务了。
@SpringBootApplication(exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class
})
版权声明:本文为qq_50626505原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。