Skip to content

Commit 871dbc0

Browse files
committed
Merge branch 'v3.x.x' into reboot/fix/modulith_caches_improvements
# Conflicts: # gateway-service/src/test/java/org/zowe/apiml/gateway/filters/security/TokenAuthFilterTest.java
2 parents 8ce1b34 + 255e5b4 commit 871dbc0

60 files changed

Lines changed: 3100 additions & 1519 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
All notable changes to the Zowe API Mediation Layer package will be documented in this file.
44

5-
## `3.4.1 (2026-01-29)`
5+
## `APIML 3.5.3 / Zowe 3.4.1 (2026-01-29)`
66

77
* Feature: Support binding on multiple network interfaces (#4457) ([581217a](https://github.com/zowe/api-layer/commit/581217a)), closes [#4457](https://github.com/zowe/api-layer/issues/4457)
88

@@ -17,7 +17,7 @@ All notable changes to the Zowe API Mediation Layer package will be documented i
1717
* Bugfix: Fix Node.js enabler (#4434) ([172ec16](https://github.com/zowe/api-layer/commit/172ec16)), closes [#4434](https://github.com/zowe/api-layer/issues/4434)
1818
* Bugfix: Loading JWKs from z/OSMF (#4432) ([d592a4e](https://github.com/zowe/api-layer/commit/d592a4e)), closes [#4432](https://github.com/zowe/api-layer/issues/4432)
1919

20-
## `APIML 3.4.0 / Zowe 3.4.0 (2025-11-12)`
20+
## `APIML 3.4.10 / Zowe 3.4.0 (2025-11-12)`
2121

2222
* Feature: Enable opentelemetry for modulith (#4380) ([259a2fc](https://github.com/zowe/api-layer/commit/259a2fc)), closes [#4380](https://github.com/zowe/api-layer/issues/4380)
2323
* Feature: Support keyrings with ICSF keys (#4354) ([eeb3ade](https://github.com/zowe/api-layer/commit/eeb3ade)), closes [#4354](https://github.com/zowe/api-layer/issues/4354)
@@ -35,7 +35,7 @@ All notable changes to the Zowe API Mediation Layer package will be documented i
3535
* Bugfix: Resolve conflicting beans (#4387) ([e551700](https://github.com/zowe/api-layer/commit/e551700)), closes [#4387](https://github.com/zowe/api-layer/issues/4387)
3636
* Bugfix: Fix URLs for onboarding when AT-TLS is enabled (#4169) ([fc46df1](https://github.com/zowe/api-layer/commit/fc46df1)), closes [#4169](https://github.com/zowe/api-layer/issues/4169)
3737

38-
## `3.3.1 (2025-10-20)`
38+
## `APIML 3.3.12 / Zowe 3.3.1 (2025-10-20)`
3939

4040
* Feature: Support configurable username field for OIDC tokens (#4300) ([f9711b2](https://github.com/zowe/api-layer/commit/f9711b2)), closes [#4300](https://github.com/zowe/api-layer/issues/4300)
4141
* Feature: Support multiple OIDC providers at the same time (#4295) ([686061c](https://github.com/zowe/api-layer/commit/801927)), closes [#4321](https://github.com/zowe/api-layer/issues/4295)
@@ -62,7 +62,7 @@ All notable changes to the Zowe API Mediation Layer package will be documented i
6262
* Bugfix: Fix of Tomcat customizers to be supported also by reactive framework (#4336) ([3bff245](https://github.com/zowe/api-layer/commit/3bff245)), closes [#4336](https://github.com/zowe/api-layer/issues/4336)
6363
* Bugfix: Requirement of client certificate on ZAAS call when AT-TLS is used & add AT-TLS support to DC (#4347) ([47525ee](https://github.com/zowe/api-layer/commit/47525ee)), closes [#4347](https://github.com/zowe/api-layer/issues/4347)
6464

65-
## `3.3.0 (2025-08-18)`
65+
## `APIML 3.3.7 / Zowe 3.3.0 (2025-08-18)`
6666

6767
* Feature: New configuration property **`apiml.security.forwardHeader.trustedProxies`** added to specify the regular expression pattern used to identify trusted proxies from which `X-Forwarded-*` headers are accepted and forwarded. Mitigates CVE-2025-41235. (#4171) ([ff8c81d](https://github.com/zowe/api-layer/commit/ff8c81d)), closes [#4171](https://github.com/zowe/api-layer/pull/4171)
6868
* Feature: Support independent response time route setting (#3981) ([aba1b0f](https://github.com/zowe/api-layer/commit/aba1b0f)), closes [#3981](https://github.com/zowe/api-layer/issues/3981)

api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/ApiCatalogApplication.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
package org.zowe.apiml.apicatalog;
1212

1313
import org.springframework.boot.SpringApplication;
14+
import org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration;
15+
import org.springframework.boot.actuate.autoconfigure.opentelemetry.OpenTelemetryAutoConfiguration;
1416
import org.springframework.boot.autoconfigure.SpringBootApplication;
1517
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
1618
import org.springframework.context.annotation.ComponentScan;
@@ -23,7 +25,12 @@
2325
import org.zowe.apiml.product.monitoring.LatencyUtilsConfigInitializer;
2426
import org.zowe.apiml.product.version.BuildInfo;
2527

26-
@SpringBootApplication
28+
@SpringBootApplication(
29+
exclude = {
30+
OpenTelemetryAutoConfiguration.class,
31+
OpenTelemetryLoggingAutoConfiguration.class
32+
}
33+
)
2734
@EnableDiscoveryClient
2835
@ComponentScan(value = {
2936
"org.zowe.apiml.apicatalog",

api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/config/SecurityConfiguration.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
import org.zowe.apiml.security.common.util.X509Util;
5656
import reactor.core.publisher.Mono;
5757

58+
import java.net.URLDecoder;
59+
import java.nio.charset.StandardCharsets;
5860
import java.util.Collections;
5961
import java.util.Map;
6062
import java.util.Optional;
@@ -142,6 +144,7 @@ SecurityWebFilterChain logoutSecurityWebFilterChain(ServerHttpSecurity http, Ser
142144
*/
143145
@Bean
144146
@Order(3)
147+
@ConditionalOnMissingBean(name = "modulithConfig")
145148
SecurityWebFilterChain basicAuthOrTokenOrCertApiDocFilterChain(
146149
ServerHttpSecurity http,
147150
ServerAuthenticationEntryPoint serverAuthenticationEntryPoint
@@ -165,6 +168,7 @@ SecurityWebFilterChain basicAuthOrTokenOrCertApiDocFilterChain(
165168

166169
@Bean
167170
@Order(4)
171+
@ConditionalOnMissingBean(name = "modulithConfig")
168172
SecurityWebFilterChain healthEndpointSecurityWebFilterChain(
169173
ServerHttpSecurity http,
170174
@Value("${apiml.health.protected:true}") boolean isHealthEndpointProtected,
@@ -189,6 +193,7 @@ SecurityWebFilterChain healthEndpointSecurityWebFilterChain(
189193

190194
@Bean
191195
@Order(5)
196+
@ConditionalOnMissingBean(name = "modulithConfig")
192197
SecurityWebFilterChain basicAuthOrTokenAllEndpointsFilterChain(
193198
ServerHttpSecurity http,
194199
ServerAuthenticationEntryPoint serverAuthenticationEntryPoint
@@ -369,7 +374,8 @@ ServerAuthenticationEntryPoint serverAuthenticationEntryPoint(
369374
) {
370375
return (exchange, authenticationException) -> {
371376
try {
372-
ApiMessageView message = messageService.createMessage("org.zowe.apiml.security.login.invalidCredentials", exchange.getRequest().getPath().toString()).mapToView();
377+
var path = URLDecoder.decode(String.valueOf(exchange.getRequest().getPath()), StandardCharsets.UTF_8);
378+
ApiMessageView message = messageService.createMessage("org.zowe.apiml.security.login.invalidCredentials", path).mapToView();
373379
DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(mapper.writeValueAsBytes(message));
374380
exchange.getResponse().setRawStatusCode(SC_UNAUTHORIZED);
375381
exchange.getResponse().getHeaders().setContentType(MediaType.APPLICATION_JSON);

api-catalog-services/src/test/resources/application.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ logging:
4444
org.eclipse.jetty: WARN
4545
org.apache.http.conn.ssl.DefaultHostnameVerifier: DEBUG #logs only SSLException
4646

47+
otel:
48+
sdk:
49+
disabled: true
50+
4751
##############################################################################################
4852
# APIML configuration section
4953
##############################################################################################

0 commit comments

Comments
 (0)