App
Deze release bevat NL-Portal Backend Libraries 3.1.0 en NL-Portal Frontend Libraries 3.1.0.
Nieuwe Functionaliteit
De volgende functionaliteiten zijn nieuw toegevoegd:
Keycloak Standard Token Exchange (v2) te kiezen met een environment variabele. De nieuwe variabele
KEYCLOAK_TOKEN_EXCHANGE_VERSIONaccepteertv1ofv2. De standaardwaarde isv1, dus een bestaande deployment werkt zonder aanpassing verder. Metv2gebruikt de app image de Standard Token Exchange van Keycloak 26.2 en nieuwer, en heeft de Keycloak waarop de portal draait de featurestoken-exchange:v1enadmin-fine-grained-authz:v1niet meer nodig. Daardoor komt Fine-Grained Admin Permissions v2 op die Keycloak beschikbaar.De variant bepaalt ook welke clients je in Keycloak nodig hebt: v2 heeft er twee, v1 drie. Zie Standard token exchange (v2) en Migratie van v1 naar v2.
KEYCLOAK_TOKEN_EXCHANGE_AUDIENCEis niet meer verplicht. Bijv2laat je de variabele leeg of weg. Bijv1blijft hij nodig en moet hij de doelclient noemen. Tot 3.0.x startte de app image niet zonder deze variabele; vanaf 3.1.0 start hij wel, logt bijv1een waarschuwing dat de audience ontbreekt, en faalt de eerste token exchange met een melding die de property benoemt.Optionele audience validatie. Met
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_AUDIENCESlaat je de backend controleren voor welke client een token is uitgegeven. Zonder die variabele accepteert de backend elke token die door hetzelfde realm is ondertekend, ongeacht de client. De variabele staat standaard leeg en werkt alleen wanneer de Keycloak configuratie de bijbehorende audience mappers heeft. Zie Audience validatie.Helm chart 3.2.0. De
nl-portal-backendchart 3.2.0 sluit hierop aan:WaardeBetekenissettings.keycloak.tokenExchangeVersionv1ofv2. Standaardv1settings.keycloak.audienceAlleen nog verplicht bij
v1settings.keycloak.acceptedAudiencesOptionele audience validatie. Standaard leeg
De chart weigert
v2te renderen wanneer de gedeployde versie ouder is dan 3.1.0, en meldt dat bij het renderen in plaats van bij het opstarten.
Bugfixes
De volgende bugs zijn opgelost:
Wanneer Keycloak een token exchange weigert, wordt de foutmelding van Keycloak nu gelogd, samen met de actieve variant. Voorheen verdween die tekst en bleef alleen een HTTP status over.
Modules die andere modules nodig hebben, controleerden dat niet volledig. Zette je
zakenapi,berichten,openproductofproductaan zonder al hun vereisten, dan startte de applicatie niet op en faalde hij met eenNoSuchBeanDefinitionException, in Kubernetes een crash loop. Deze modules blijven nu inactief wanneer een vereiste module uitstaat, in plaats van het opstarten te blokkeren.ModuleAanvullend vereistzakenapidocumentenapis,besluitenapiberichtenobjectenapiopenproductcatalogiapi,documentenapis,besluitenapiproductcatalogiapi,documentenapis,besluitenapi,taakDit speelt vooral bij configuratie via het Configuration Panel, waar je per wijziging opslaat en de applicatie tussentijds herstart. Een configuratie die eerder werkte verandert hier niet door. Zie Module afhankelijkheden voor de volledige vereisten per module.
De OpenKlant 2 module hield zich niet aan zijn eigen schakelaar. De client en de service van de module werden altijd aangemaakt, ook zonder
NLPORTAL_CONFIG_OPENKLANT2_ENABLED=true. De GraphQL queries van de module keken al wel naar die variabele, dus functioneel was de module toen ook uit. De module respecteert de variabele nu volledig. Voor een deployment van de app image verandert er niets: zonder die variabele werkte OpenKlant 2 ook voorheen al niet.
Breaking changes
Er zijn geen breaking changes.
Deprecations
De legacy token exchange (v1) blijft in 3.x de standaard, maar is door Keycloak als verouderd gemarkeerd en wordt in een toekomstige Keycloak versie verwijderd. Keycloak voegt geen ondersteuning voor token exchange permissions toe aan Fine-Grained Admin Permissions v2, dus v1 blijft FGAP v1 vereisen.
De variabele KEYCLOAK_TOKEN_EXCHANGE_VERSION is nieuw in 3.1.0. In 4.x kan deze een andere naam krijgen of de standaardwaarde v2 worden.
Bekende problemen
Er zijn geen bekende problemen.
Last updated