Обмен технологиями

Изучение интегрированного веб-сокета Springboot, невозможно подключиться, но можно подключиться с помощью netty-websocket

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Причина: Spring-security интегрирован.Перехватил запрос веб-сокета и не вывел журналы (поскольку общий уровень журнала, связанный с пружиной, является предупреждением. В режиме отладки слишком много журналов)

Затем вы можете изменить уровень журнала подводного течения, чтобы просмотреть журналы.

  1. # 日志配置
  2. logging:
  3. level:
  4. com.cas.wict: debug
  5. org.springframework: warn
  6. org.springframework.web: debug
  7. io.undertow: debug

Вывод ключевого журнала

  1. 2024-07-11 10:15:43.292 [XNIO-1 task-1] DEBUG io.undertow.request.security
  2. - Attempting to authenticate /ws, authentication required: false
  3. 2024-07-11 10:15:43.293 [XNIO-1 task-1] DEBUG io.undertow.request.security
  4. - Authentication outcome was NOT_ATTEMPTED with method io.undertow.security.impl.CachedAuthenticatedSessionMechanism@7fedbc60 for /ws
  5. 2024-07-11 10:15:43.293 [XNIO-1 task-1] DEBUG io.undertow.request.security
  6. - Authentication result was ATTEMPTED for /ws

Было обнаружено, что безопасность могла перехватить путь запроса ws (почему он перехватил, я предполагаю, что, хотя ws был написан, он все еще был http, когда он был инициирован, и он был обновлен с фонового до веб-сокета)

Решение. Откажитесь от проверки и напишите отдельный фильтр для проверки запросов ws.

Почему раньше можно было подключиться с помощью netty-websocket? Это потому, что netty не использовала цепочку фильтров Spring-Security?