【发布时间】:2013-05-09 16:54:25
【问题描述】:
- 我有一个导出 Web 服务的应用程序,配置了 Spring Security
SecurityFilterChain(其中包括SecurityContextPersistenceFilter,其余部分都需要)。 - 我的应用程序还使用 Spring Security 来保护方法调用。
触发方法安全时出现以下错误:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext
第二部分需要SecurityContextHolder 中的Authentication,如org.springframework.security.access.intercept.AbstractSecurityInterceptor(第195 行)所示:
SecurityContextHolder.getContext().getAuthentication();
但是,SecurityContextPersistenceFilter 在触发方法调用之前将其删除,如
org.springframework.security.web.context.SecurityContextPersistenceFilter(第 84 行)
SecurityContextHolder.clearContext();
当方法调用被触发时,我该怎么做才能在SecurityContextHolder 中拥有这个对象?
提前谢谢你。
我正在使用 Spring Security 3.0.8-RELEASE
【问题讨论】:
标签: spring authentication spring-security authorization security-context