| 
 | 
| 
 
RequestInterceptor && @Async 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Всем привет. Не могу разобраться. Есть Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. есть метод с @Async Код: java 1. 2. 3. 4. 5. updateStatusImportLog есть Код: java 1. 2. 3. 4. 5. 6. Без @Async всё работает, как только ставлю аннотацию перестает работать. Проблема возникает в том что request.getHeader(HttpHeaders.AUTHORIZATION) ==null если метод асинхронный. Погуглив нашел Код: java 1. 2. 3. 4. 5. После чего асинхронный работает но только всего один раз(после запуска приложения), отрабатывает STATUS_START0. После чего сколько не дергай контроллер в requestTokenBearerInterceptor всегда request.getHeader(HttpHeaders.AUTHORIZATION) == null. Как можно победить? Вариант брать из контроллера HttpServletRequest и из него токен и гонять его по всем методам не предлагайте(не красиво). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.01.2021, 18:35 | 
  
  
  
   | 
||
| 
 
RequestInterceptor && @Async 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  IgoX, Сделайте демку кода и сюда. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.01.2021, 18:41 | 
  
  
  
   | 
||
| 
 
RequestInterceptor && @Async 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  IgoX, насколько я понял задача в том, чтобы отправить HTTP-запрос куда-то еще используя приходящий заголовок Authorization от клиента... @Async работает в своем уютненьком пуле и чтобы он умел добираться до данных http-запроса ему нужно правильный экзекьютор скормить, см. например org.springframework.security.scheduling.DelegatingSecurityContextSchedulingTaskExecutor - он умеет например SecurityContext тащить из основного потока, можно в принципе в SecurityContext затаскивать заголовок и потом брать его в интерсепторе, а можно свой экзекьютор написать (только тащить целый RequestContextHolder.getRequestAttributes() не советую - оно мутирует и в другом потоке виден мусор) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.01.2021, 18:59 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&gotonew=1&tid=2120557]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    56ms | 
get topic data:  | 
    11ms | 
get first new msg:  | 
    8ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    43ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 231ms | 
| total: | 383ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.