Κοινή χρήση τεχνολογίας

Εξερευνώντας την ενσωματωμένη υποδοχή ιστού Springboot, δεν είναι δυνατή η σύνδεση, αλλά είναι δυνατή η σύνδεση χρησιμοποιώντας το netty-websocket

2024-07-12

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

Αιτία: Το Spring-security είναι ενσωματωμένο.Παρακολούθησε το αίτημα websocket και δεν έβγαλε αρχεία καταγραφής (επειδή το γενικό επίπεδο καταγραφής που σχετίζεται με το ελατήριο είναι προειδοποιημένο. Υπάρχουν πάρα πολλά αρχεία καταγραφής στη λειτουργία εντοπισμού σφαλμάτων)

Στη συνέχεια, μπορείτε να τροποποιήσετε το επίπεδο καταγραφής undertow για να προβάλετε τα αρχεία καταγραφής

  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 κατά την εκκίνηση και αναβαθμίστηκε από το παρασκήνιο στο websocket)

Λύση: Αφήστε την επαλήθευση και γράψτε ένα ξεχωριστό φίλτρο για να επαληθεύσετε τα αιτήματα ws

Γιατί ήταν δυνατή η σύνδεση χρησιμοποιώντας netty-websocket στο παρελθόν. Η netty δεν χρησιμοποιούσε την αλυσίδα φίλτρου ασφαλείας;