Я оцениваю Hystrix в своем приложении и не могу выполнить резервный метод, поскольку поток теряет контекст, присутствующий в родительском потоке.
Я использую весеннюю загрузку и аннотации @PreAuthorize, как показано ниже:
@PreAuthorize("hasAnyRole('" + SecuredConstants.ROLE_APP_DEBUG + "')")
void clearAllRedisCaches();
@PreAuthorize("hasAnyRole('" + SecuredConstants.ROLE_APP_DEBUG + "')")
Set<String> getAllCaches();
@PreAuthorize("hasAnyRole('" + SecuredConstants.ROLE_APP_DEBUG + "')")
Set<String> getKeys(String cacheName);
Теперь мой запасной метод:
public String getAssetsFromBackup(String domainId) {
CacheEntry entry = cacheService.get(Constants.CACHE_NAME_ALL_COLLIBRA_ASSETS_BY_DOMAIN_ID_BACKUP, domainId);
if (entry != null) {
return (String) entry.getV();
}
return null;
}
Ошибка cachService.get()
, потому что у меня нет контекста безопасности внутри потока Hystrix.
Как я могу достичь этого? Я на весенней загрузке 1.5
Я пробовал некоторые решения, упомянутые в других постах ( Недоступный контекст безопасности с использованием Feign RequestInterceptor ), но они не работают.