У меня есть методы проверки @PreAuthorize("hasRole('ADMIN')")
, когда я звоню из пользовательского интерфейса (это займет от 2 до 3 часов, пока срок действия сеанса истекает). Я получаю SecurityContext
как null
.
Пробовал с MODE_INHERITABLETHREADLOCAL
, но все равно получаю ту же ошибку.
Также я попробовал следующий код:
public class CustomThreadPoolTaskExecutor extends ThreadPoolTaskExecutor{
@Override
public void execute(final Runnable r) {
final Authentication a = SecurityContextHolder.getContext().getAuthentication();
super.execute(new Runnable() {
public void run() {
try {
SecurityContext ctx = SecurityContextHolder.createEmptyContext();
ctx.setAuthentication(a);
SecurityContextHolder.setContext(ctx);
r.run();
} finally {
SecurityContextHolder.clearContext();
}
}
});
}
}
но я все еще получаю ту же ошибку:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: объект Authentication не найден в SecurityContext
org.springframework.security.task.DelegatingSecurityContextAsyncTaskExecutor
? - person dur   schedule 11.04.2017