Condivisione della tecnologia

Esplorazione del websocket integrato Springboot, incapace di connettersi, ma in grado di connettersi utilizzando netty-websocket

2024-07-12

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

Motivo: la sicurezza primaverile è integrata.Intercettata la richiesta websocket e non ha generato log (perché il livello di log generale relativo a Spring è avvisato. Ci sono troppi log in modalità debug)

Quindi è possibile modificare il livello del registro della risacca per visualizzare i registri

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

Output del registro chiave

  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

Ho scoperto che la sicurezza potrebbe aver intercettato il percorso della richiesta ws (perché è stato intercettato, immagino che sebbene ws sia stato scritto, era ancora http quando è stato avviato ed è stato aggiornato dallo sfondo a websocket)

Soluzione: abbandonare la verifica e scrivere un filtro separato per verificare le richieste ws

Perché prima era possibile connettersi utilizzando netty-websocket? Era perché netty non utilizzava la catena di filtri di sicurezza a molla?