- Szycy
- 19 kwietnia 2026 21:34 UTC
- Autor
- Kamo
- Pochęt się
- 7720191
Zamyka lukę "stale DB wycieka wyłączną cechę" poprzez zaznaczenie każdej powierzchni Dotykają OrgFeature / ServiceType poprzez zastosowany model zabezpieczeń. - (pierwotny podajnik frontendu OrgContext): zastępuje serializację surowych cech org.getFeatures()). Auto- Zaopatrzenie pętli teraz również pomija aplikacje, które model oznacza NIEBWEABLE, więc Nigdy nie tworzymy wierszy DB dla zablokowanych aplikacji. - FunkcjaController.list: zwraca każdą funkcję z modelAvailability + Zamknięte metadane. NOT_AVAILABLE rzędy są filtrowane, wiersze FORCE_ENABLED Są zgłaszane jako wtyczka-prawdziwa + zablokowana niezależnie od stanu DB. Dostępna lista jest również filtrowana do aplikacji, na które pozwala model. - Nowy AppAvailabilityInterceptor + WebMvcConfig: instaluje a HandlerInterceptor na każdym prefiksie adresu URL (/api/security/pos, /api/security/commerce-markets, /api/security/leads, /api/security/load- przywóz, /api/security/lead-markets, /api/security/lead-vendors, - "" Każde żądanie jest dopasowane do a SerwisType, rozwiązany przeciwko zastosowanemu modelowi dzwoniącemu i odrzucony Z HTTP 403, jeśli aplikacja jest skutecznie wyłączona. To jest ostateczna linia Obrona: nawet ze stanem nieświeżego klienta, zapomnianym strażnikiem kontrolera lub Bezpośrednie połączenie API, zablokowana aplikacja zwraca 403. Efekt netto: zastosowany model bezpieczeństwa wygrywa teraz w czasie odczytu na całym świecie Funkcje lub aplikacje org są odsłonięte - nawigacja, strona główna, ustawienia Wysuwanie, FeaturesManager, punkty końcowe na obsługę. Kiedy administrator się przewraca CRM do NOT_AVAILABLE w modelu, interfejs CRM Zbiega się z frontendu Punkty końcowe CRM rozpoczynają 403'ing - niezależnie od tego, czy DB nadal ma OrgFeature.isActive-true dla CRM.