我使用石英将 cronjobs 添加到 spring 应用程序。
在这些工作中,我想从另一个应用程序访问 spring-security 安全 bean 方法。
这是我的应用程序结构。
| - 核心
| - 网络应用
| - 工作应用程序
webapp 和 jobsapp 都使用核心服务。jobsapp 不是网络应用程序。它只是有石英工作。
如果我尝试访问使用 SpringSecurity global-method-security 保护的 bean,则在作业中出现异常{org.springframework.security.AuthenticationCredentialsNotFoundException}"org.springframework.security.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext"
如果我使用 SecurityContextHolder.getContext().setAuthentication 将上下文设置为高级用户,它就可以工作。
但是,我必须为所有工作都这样做。
有没有办法让所有的工作都以特定用户的身份运行?可能是某处的一些配置?