@PreAuthorize
我有一个使用注释保护的 Spring Service 层。到目前为止,这已通过 Web 应用程序使用。现在我需要启用我们的 SpringBatch 作业以使用这些服务。
在调用这些服务方法之前,让作业授权它们的最直接的方法是什么?
@PreAuthorize
我有一个使用注释保护的 Spring Service 层。到目前为止,这已通过 Web 应用程序使用。现在我需要启用我们的 SpringBatch 作业以使用这些服务。
在调用这些服务方法之前,让作业授权它们的最直接的方法是什么?
我有同样的问题,这是我为解决它所做的:
在我的 tasklet 中,我调用了这个方法:
securityUtility.authenticateAs("login", "password");
这是在我的小任务中注入的 SecurityUtility 类中编写的 authenticateAs 方法的定义,实现了 ApplicationContextAware :
/**
* Authenticate a user
* @param username
* @param password
* @return
*/
public Authentication authenticateAs(String username, String password) {
ProviderManager providerManager = (ProviderManager)applicationContext.getBean("authenticationManager");
Authentication authentication = providerManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
setAuthentication(authentication);
return authentication;
}
效果很好,如果您需要更多详细信息,请告诉我;)