最近在研究activiti,在6.0的版本上整合了shiro,今天改成7.0之后,application直接红了:
org.activiti.spring.boot.SecurityAutoConfiguration.class
查了一下7.0的包,发现与6.0有很大的差异,就一直在jar中寻找着securityauto的class,没有查找到任何相关类,查看了一下start的jar,发现7.0已经内部整合了spring security,之后,就满世界找,看了很多的帖子,都是基于6.0的解答,期间花费了很多时间,最后发现,在6.0测试的时候,是使用一个继承了WebSecurityConfigurerAdapter类来进行简单的登录管理的,就想着在shir的配置上继承这个类,随后测试,发现居然ko了,谢天谢地,今天不用加班了0.0
后记:
taskService.addCandidateUser(taskNext.getId(),"admin");
Task task = taskService.createTaskQuery().taskId(taskId).taskCandidateUser("admin").singleResult();
会报错,UserNotFoundException之类的,主要是因为activiti使用spring security的查询,有一个暂时的解决方案,在shiro的配置上实现UserDetailsService接口,重写loadUserByUsername(String username)的逻辑,就可以暂时解决问题,在使用taskService.addCandidateGroup(taskNext.getId(),"admin");时,却没有发现什么报错,也没有走loadUserByUsername的逻辑,看来又要看一下源码才知道究竟是怎么实现group的了,这个就以后用到再说吧。