Spring 如何正确地向应用程序本身提供身份验证对象(SecurityContext)?
我的大多数应用程序都使用方法级安全性(AspectJ,但这并不重要),现在我正试图从应用程序本身(不是控制器,而是EventListener)中调用一些代码,我不禁想知道Spring安全性是否提供了一些现成的方式,将身份验证对象赋予应用程序本身,否则,我无法通过我的方法安全性,因为应用程序具有空安全对象(SecurityContext中的身份验证,如果它存在的话——取决于情况,您可能必须首先初始化它) 当然我可以这样做(就在运行相关代码之前):Spring 如何正确地向应用程序本身提供身份验证对象(SecurityContext)?,spring,spring-security,Spring,Spring Security,我的大多数应用程序都使用方法级安全性(AspectJ,但这并不重要),现在我正试图从应用程序本身(不是控制器,而是EventListener)中调用一些代码,我不禁想知道Spring安全性是否提供了一些现成的方式,将身份验证对象赋予应用程序本身,否则,我无法通过我的方法安全性,因为应用程序具有空安全对象(SecurityContext中的身份验证,如果它存在的话——取决于情况,您可能必须首先初始化它) 当然我可以这样做(就在运行相关代码之前): 但在部署中这样做安全吗(安全方面) 是否可以保证
- 但在部署中这样做安全吗(安全方面)
- 是否可以保证哪个线程将拥有此SecurityContext?其他线程及其任务如何
- 一旦设置好,它能保持在那里吗?在应用程序运行的剩余时间内(可能是几天/几个月),上下文可能会被重新加载,等等。我缺乏深入的Spring知识,不知道Spring内部线程会发生什么
UserDetails ud = User.builder()
.username("APPLICATION")
.password("APPLICATION")
.roles("APPLICATION")
.build();
Authentication auth = new UsernamePasswordAuthenticationToken(ud, ud.getPassword(), ud.getAuthorities());
SecurityContextHolder.getContext()
.setAuthentication(auth);