Partage de technologie

Explorer le websocket intégré à Springboot, impossible de se connecter, mais capable de se connecter à l'aide de netty-websocket

2024-07-12

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

Raison : Spring-security est intégré.Interception de la requête Websocket et n'a pas généré de journaux (car le niveau de journalisation général lié au printemps est averti. Il y a trop de journaux en mode débogage)

Ensuite, vous pouvez modifier le niveau de journalisation du ressac pour afficher les journaux

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

Sortie du journal des clés

  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

Il a été constaté que la sécurité avait peut-être intercepté le chemin de la requête ws (pourquoi il a été intercepté, je suppose que bien que ws ait été écrit, il était toujours http lorsqu'il a été lancé et il a été mis à niveau de l'arrière-plan vers websocket)

Solution : abandonnez la vérification et écrivez un filtre séparé pour vérifier les requêtes ws

Pourquoi était-il possible de se connecter à l'aide de netty-websocket auparavant ? C'était parce que netty n'utilisait pas la chaîne de filtres de sécurité Spring.