On 2024/07/25 08:42:52 ma...@apache.org wrote: > This is an automated email from the ASF dual-hosted git repository. > > markt pushed a commit to branch main > in repository https://gitbox.apache.org/repos/asf/tomcat.git > > commit a2384804c527c64290cfae1fa988f1f394890e91 > Author: Mark Thomas <ma...@apache.org> > AuthorDate: Wed Jul 24 17:51:24 2024 +0100 > > Add JreCompat support for Subject.callAs() > > With the changes coming in Java 23 we need to move away from > Subject.doAs() but the replacement isn't available in Java 17. Hence use > JreCompat. > --- > .../org/apache/tomcat/util/compat/Jre18Compat.java | 71 > ++++++++++++++++++++++ > .../org/apache/tomcat/util/compat/Jre19Compat.java | 2 +- > java/org/apache/tomcat/util/compat/JreCompat.java | 39 ++++++++++++ > .../tomcat/util/compat/LocalStrings.properties | 1 + > 4 files changed, 112 insertions(+), 1 deletion(-) > > diff --git a/java/org/apache/tomcat/util/compat/Jre18Compat.java > b/java/org/apache/tomcat/util/compat/Jre18Compat.java > new file mode 100644 > index 0000000000..b83999f179 > --- /dev/null > +++ b/java/org/apache/tomcat/util/compat/Jre18Compat.java > @@ -0,0 +1,71 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.tomcat.util.compat; > + > +import java.lang.reflect.InvocationTargetException; > +import java.lang.reflect.Method; > +import java.util.concurrent.Callable; > +import java.util.concurrent.CompletionException; > + > +import javax.security.auth.Subject; > + > +import org.apache.juli.logging.Log; > +import org.apache.juli.logging.LogFactory; > +import org.apache.tomcat.util.res.StringManager; > + > +public class Jre18Compat extends JreCompat { > + > + private static final Log log = LogFactory.getLog(Jre18Compat.class); > + private static final StringManager sm = > StringManager.getManager(Jre18Compat.class); > + > + private static final Method callAsMethod; > + > + static { > + Method m1 = null; > + > + try { > + m1 = Subject.class.getMethod("classAS", Subject.class, > Callable.class);
Am I stupid or isn't the method called "callAs"? https://docs.oracle.com/en/java/javase/21/docs/api/java.base/javax/security/auth/Subject.html#callAs(javax.security.auth.Subject,java.util.concurrent.Callable) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org