Невозможно установить Spring SecurityContext в потоке hystrix. - PullRequest
0 голосов
/ 14 мая 2019

Я оцениваю 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 ), но они не работают.

...