Quartz を使用して、春のアプリに cronjobs を追加しました。
これらのジョブ内で、別のアプリからスプリング セキュリティで保護された Bean メソッドにアクセスしたいと考えています。
これが私のアプリケーション構造です。
| | - コア
| - ウェブアプリ
| - 求人アプリ
webapp と jobsapp の両方がコア サービスを使用します。jobsapp は Web アプリケーションではありません。クォーツの仕事が入っているだけです。
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 を使用してコンテキストをパワー ユーザーに設定すると、機能します。
しかし、私はすべての仕事のためにこれをしなければなりません。
すべてのジョブを特定のユーザーとして実行する方法はありますか? どこかに何らかの設定があるかもしれませんか?