From 6a4d1a81257efe3f22071884faa742968f6130ef Mon Sep 17 00:00:00 2001 From: Manuel Fink Date: Tue, 14 May 2024 11:02:56 +0200 Subject: [PATCH] fix NPE in IdentityServicesPropertySourceFactory --- CHANGELOG.md | 3 +++ .../IdentityServicesPropertySourceFactory.java | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b24f1bb1f0..bfd7d2f3a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ All notable changes to this project will be documented in this file. +## 2.17.6 +- [spring-security] fixed NPE in IdentityServicesPropertySourceFactory on application startup when bound to a list of XSUAA services whose service plans are ALL not supported + ## 2.17.5 #### Dependency upgrades - bump spring-core version to 5.3.34 diff --git a/spring-security/src/main/java/com/sap/cloud/security/spring/config/IdentityServicesPropertySourceFactory.java b/spring-security/src/main/java/com/sap/cloud/security/spring/config/IdentityServicesPropertySourceFactory.java index d38a1d8553..88a495eebc 100644 --- a/spring-security/src/main/java/com/sap/cloud/security/spring/config/IdentityServicesPropertySourceFactory.java +++ b/spring-security/src/main/java/com/sap/cloud/security/spring/config/IdentityServicesPropertySourceFactory.java @@ -90,15 +90,19 @@ private void mapXsuaaAttributesSingleInstance(final OAuth2ServiceConfiguration o private void mapXsuaaProperties(@Nonnull Environment environment) { final int numberOfXsuaaConfigurations = environment.getNumberOfXsuaaConfigurations(); - if (numberOfXsuaaConfigurations == 0) { + final OAuth2ServiceConfiguration xsuaaConfiguration = environment.getXsuaaConfiguration(); + + if (numberOfXsuaaConfigurations == 0 || xsuaaConfiguration == null) { + /* + * Case "no XSUAA service configurations or only configurations with unsupported plans" + */ return; } - + /* - * Case "single XSUAA service configuration": - * Then we do not use an array for describing the properties. + * Case "single XSUAA service configuration": Then we do not use an array for + * describing the properties. */ - final OAuth2ServiceConfiguration xsuaaConfiguration = environment.getXsuaaConfiguration(); if (numberOfXsuaaConfigurations == 1) { mapXsuaaAttributesSingleInstance(xsuaaConfiguration, XSUAA_PREFIX); return;