Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flowable.ui.common.service.idm.RemoteIdmService]: Factory method 'remoteIdmService' threw exception; nested exception is java.lang.IllegalArgumentException: `flowable.common.app.idm-url` must be set at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ... 25 common frames omitted Caused by: java.lang.IllegalArgumentException: `flowable.common.app.idm-url` must be set at org.springframework.util.Assert.hasText(Assert.java:289) at org.flowable.ui.common.properties.FlowableCommonAppProperties.determineIdmAppUrl(FlowableCommonAppProperties.java:150) at org.flowable.ui.common.service.idm.RemoteIdmServiceImpl.<init>(RemoteIdmServiceImpl.java:60) at org.flowable.ui.common.security.FlowableUiSecurityAutoConfiguration$RemoteIdmConfiguration.remoteIdmService(FlowableUiSecurityAutoConfiguration.java:120) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 26 common frames omitted
报错提示:`flowable.common.app.idm-url` must be set
@Autowired protected ObjectMapper objectMapper; protected String url; protected String adminUser; protected String adminPassword; public RemoteIdmServiceImpl(FlowableCommonAppProperties properties) { url = properties.determineIdmAppUrl(); adminUser = properties.getIdmAdmin().getUser(); Assert.hasText(adminUser, "Admin user must not be empty"); adminPassword = properties.getIdmAdmin().getPassword(); Assert.hasText(adminPassword, "Admin user password should not be empty"); }
这个是由于flowable调用自己的用户权限导致的,如果把flowable集成自己的框架里面,就不需要用它自带的用户体现和权限了
出现这个问题,需要重写调用这个权限的最开始的那个类:FlowableUiSecurityAutoConfiguration
在自己项目,相同包名路径下,建个相同的类
package org.flowable.ui.common.security; import org.flowable.spring.boot.FlowableSecurityAutoConfiguration; import org.flowable.spring.boot.idm.IdmEngineServicesAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration; import org.springframework.context.annotation.Configuration; /** * 说明:重构FlowableUiSecurity自动配置 * From:www.fhadmin.org */ @Configuration(proxyBeanMethods = false) @AutoConfigureAfter({ IdmEngineServicesAutoConfiguration.class, }) @AutoConfigureBefore({ FlowableSecurityAutoConfiguration.class, OAuth2ClientAutoConfiguration.class, }) public class FlowableUiSecurityAutoConfiguration {}