This is an automated email from the ASF dual-hosted git repository.

markt-asf pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new e4ab32c2b1 Fix back-port (record not available in Java 11)
e4ab32c2b1 is described below

commit e4ab32c2b1bdfccfad5fa11cc02c8136fdf2f6ad
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Sep 3 18:08:34 2026 +0100

    Fix back-port (record not available in Java 11)
---
 .../catalina/authenticator/AuthenticatorBase.java  | 30 ++++++++++++++++------
 1 file changed, 22 insertions(+), 8 deletions(-)

diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java 
b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
index 337db84590..de087cfadf 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -607,13 +607,13 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
                 }
                 authenticated = authenticationResult.getAuthenticated();
             } else {
-                if (jaspicContextState.serverAuthConfig() == null) {
+                if (jaspicContextState.serverAuthConfig == null) {
                     // JASPIC is configured but didn't initialise correctly
                     
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                     return;
                 }
                 jaspicRequestState = getJaspicRequestState(
-                        jaspicContextState.serverAuthConfig(), request, 
response, hasAuthConstraint);
+                        jaspicContextState.serverAuthConfig, request, 
response, hasAuthConstraint);
                 if (jaspicRequestState == null) {
                     // getJaspicRequestState() sets the HTTP status code
                     return;
@@ -769,13 +769,13 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
             return doAuthenticateExtended(request, 
httpResponse).getAuthenticated();
         } else {
             Response response = request.getResponse();
-            if (jaspicContextState.serverAuthConfig() == null) {
+            if (jaspicContextState.serverAuthConfig == null) {
                 // JASPIC is configured but didn't initialise correctly
                 
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                 return false;
             }
             JaspicRequestState jaspicRequestState =
-                    
getJaspicRequestState(jaspicContextState.serverAuthConfig(), request, response, 
true);
+                    getJaspicRequestState(jaspicContextState.serverAuthConfig, 
request, response, true);
             if (jaspicRequestState == null) {
                 // getJaspicRequestState() sets the HTTP status code
                 return false;
@@ -1315,7 +1315,7 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
             MessageInfo messageInfo = new MessageInfoImpl(request, 
request.getResponse(), true);
             Subject client = (Subject) 
request.getNote(Constants.REQ_JASPIC_SUBJECT_NOTE);
             if (client != null) {
-                ServerAuthConfig serverAuthConfig = 
jaspicContextState.serverAuthConfig();
+                ServerAuthConfig serverAuthConfig = 
jaspicContextState.serverAuthConfig;
                 if (serverAuthConfig == null) {
                     
log.debug(sm.getString("authenticator.jaspicCleanSubjectFail"));
                 } else {
@@ -1453,7 +1453,7 @@ public abstract class AuthenticatorBase extends ValveBase 
implements Authenticat
                 }
                 if (result.serverAuthConfig == null) {
                     jaspicContextState = Optional.of(new JaspicContextState(
-                            result.authConfigProvider(), 
createServerAuthConfig(result.authConfigProvider())));
+                            result.authConfigProvider, 
createServerAuthConfig(result.authConfigProvider)));
                 }
             }
             return jaspicContextState.orElse(null);
@@ -1503,11 +1503,25 @@ public abstract class AuthenticatorBase extends 
ValveBase implements Authenticat
     }
 
 
-    private record JaspicContextState(AuthConfigProvider authConfigProvider, 
ServerAuthConfig serverAuthConfig) {
+    private class JaspicContextState {
+        private final AuthConfigProvider authConfigProvider;
+        private final ServerAuthConfig serverAuthConfig;
+
+        JaspicContextState(AuthConfigProvider authConfigProvider, 
ServerAuthConfig serverAuthConfig) {
+            this.authConfigProvider = authConfigProvider;
+            this.serverAuthConfig = serverAuthConfig;
+        }
     }
 
 
-    private record JaspicRequestState(MessageInfo messageInfo, 
ServerAuthContext serverAuthContext) {
+    private class JaspicRequestState {
+        private final MessageInfo messageInfo;
+        private final ServerAuthContext serverAuthContext;
+
+        JaspicRequestState(MessageInfo messageInfo, ServerAuthContext 
serverAuthContext) {
+            this.messageInfo = messageInfo;
+            this.serverAuthContext = serverAuthContext;
+        }
     }
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to