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
The following commit(s) were added to refs/heads/main by this push: new 8a9ce361bb Removed unused class 8a9ce361bb is described below commit 8a9ce361bb587b7173efd2e0be8bdedb4e5c1d21 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Jan 12 16:33:28 2023 +0000 Removed unused class --- .../catalina/security/LocalStrings.properties | 2 - .../catalina/security/LocalStrings_es.properties | 2 - .../catalina/security/LocalStrings_fr.properties | 2 - .../catalina/security/LocalStrings_ja.properties | 2 - .../catalina/security/LocalStrings_ko.properties | 2 - .../security/LocalStrings_zh_CN.properties | 2 - .../org/apache/catalina/security/SecurityUtil.java | 412 --------------------- 7 files changed, 424 deletions(-) diff --git a/java/org/apache/catalina/security/LocalStrings.properties b/java/org/apache/catalina/security/LocalStrings.properties index 1c604fd388..f685b9a2ed 100644 --- a/java/org/apache/catalina/security/LocalStrings.properties +++ b/java/org/apache/catalina/security/LocalStrings.properties @@ -20,5 +20,3 @@ SecurityListener.checkUmaskNone=No umask setting was found in system property [{ SecurityListener.checkUmaskParseFail=Failed to parse value [{0}] as a valid umask. SecurityListener.checkUmaskSkip=Unable to determine umask. It appears Tomcat is running on Windows so skip the umask check. SecurityListener.checkUserWarning=Start attempted while running as user [{0}]. Running Tomcat as this user has been blocked by the Lifecycle listener org.apache.catalina.security.SecurityListener (usually configured in CATALINA_BASE/conf/server.xml) - -SecurityUtil.doAsPrivilege=An exception occurs when running the PrivilegedExceptionAction block. diff --git a/java/org/apache/catalina/security/LocalStrings_es.properties b/java/org/apache/catalina/security/LocalStrings_es.properties index a3f2be9b30..fb08237a53 100644 --- a/java/org/apache/catalina/security/LocalStrings_es.properties +++ b/java/org/apache/catalina/security/LocalStrings_es.properties @@ -18,5 +18,3 @@ SecurityListener.checkUmaskNone=No se ha hallado valor de umask en propiedad de SecurityListener.checkUmaskParseFail=No pude anallizar el valor [{0}] como in válido umask. SecurityListener.checkUmaskSkip=No pude determinar umask. Parece que Tomcat se está ejecutando en Windows, por lo que se salta el chequeo de umsak. SecurityListener.checkUserWarning=Se ha intentado arrancar mientras se ejecutaba como usuario [{0}]. Ejecutando Tomcat como este usuario user ha sido bloqueado por el oyente de Ciclos de Vida org.apache.catalina.security.SecurityListener (normalmente configurado en CATALINA_BASE/conf/server.xml) - -SecurityUtil.doAsPrivilege=Ha tenido lugar una excepción al ejecutar el bloque PrivilegedExceptionAction. diff --git a/java/org/apache/catalina/security/LocalStrings_fr.properties b/java/org/apache/catalina/security/LocalStrings_fr.properties index d3861dbbf0..3aff0bed5e 100644 --- a/java/org/apache/catalina/security/LocalStrings_fr.properties +++ b/java/org/apache/catalina/security/LocalStrings_fr.properties @@ -19,6 +19,4 @@ SecurityListener.checkUmaskParseFail=Impossible de traiter la valeur [{0}] comme SecurityListener.checkUmaskSkip=Impossible de déterminer le "umask". Il semble que Tomcat tourne ici sous Windows, donc évitez la vérification du "umask". SecurityListener.checkUserWarning=Tentative de démarrage avec l''utilisateur [{0}}, qui a été bloquée par l''écouteur org.apache.catalina.security.SecurityListener (configuré habituellement dans CATALINA_BASE/conf/server.xml) -SecurityUtil.doAsPrivilege=Une exception s'est produite lors de l'exécution du bloc "PrivilegedExceptionAction". - listener.notServer=Ce listener ne peut être ajouté qu''à des éléments Server, mais est dans [{0}] diff --git a/java/org/apache/catalina/security/LocalStrings_ja.properties b/java/org/apache/catalina/security/LocalStrings_ja.properties index df0614f353..0896f452fc 100644 --- a/java/org/apache/catalina/security/LocalStrings_ja.properties +++ b/java/org/apache/catalina/security/LocalStrings_ja.properties @@ -19,6 +19,4 @@ SecurityListener.checkUmaskParseFail=値[{0}]を有効なumaskとして解析で SecurityListener.checkUmaskSkip=umask を取得できません。Tomcat を Windows で実行するときは umask をチェックしません。 SecurityListener.checkUserWarning=ユーザー[{0}]として実行中に開始しようとしました。 このユーザーでのTomcatの実行はライフサイクルリスナーorg.apache.catalina.security.SecurityListener(通常はCATALINA_BASE/conf /server.xmlで構成されている)によってブロックされています。 -SecurityUtil.doAsPrivilege=PrivilegedExceptionActionブロックを実行中に例外が発生しました。 - listener.notServer=このlistenerはServer要素内にのみネストする必要がありますが、[{0}] にあります。 diff --git a/java/org/apache/catalina/security/LocalStrings_ko.properties b/java/org/apache/catalina/security/LocalStrings_ko.properties index 0448fb2dc0..9e93b172ef 100644 --- a/java/org/apache/catalina/security/LocalStrings_ko.properties +++ b/java/org/apache/catalina/security/LocalStrings_ko.properties @@ -19,6 +19,4 @@ SecurityListener.checkUmaskParseFail=값 [{0}]이(가) 유효한 umask 값이 SecurityListener.checkUmaskSkip=umask를 결정할 수 없습니다. Tomcat이 Windows에서 실행되는 것으로 보이므로, umask 점검을 건너뜁니다. SecurityListener.checkUserWarning=사용자 [{0}](으)로서 실행하면서, 프로그램 시작이 시도 되었습니다. 이 사용자로서 Tomcat을 실행하는 것은, Lifecycle 리스너인 org.apache.catalina.security.SecurityListener (보통 CATALINA_BASE/conf/server.xml에서 설정)에 의해 차단되었습니다. -SecurityUtil.doAsPrivilege=PrivilegedExceptionAction 블록을 실행하는 중 예외가 발생했습니다. - listener.notServer=리스너 엘리먼트는 서버 엘리먼트 내에 위치해야 합니다만, 현재 [{0}] 내에 있습니다. diff --git a/java/org/apache/catalina/security/LocalStrings_zh_CN.properties b/java/org/apache/catalina/security/LocalStrings_zh_CN.properties index 8a44aea07e..2198a3dac8 100644 --- a/java/org/apache/catalina/security/LocalStrings_zh_CN.properties +++ b/java/org/apache/catalina/security/LocalStrings_zh_CN.properties @@ -19,6 +19,4 @@ SecurityListener.checkUmaskParseFail=无法将值[{0}]分析为有效的umask。 SecurityListener.checkUmaskSkip=无法确定权限。这表示 Tomcat 正在 Windows 上运行,所以跳过权限检查。 SecurityListener.checkUserWarning=以用户[{0}]身份运行时尝试启动。作为此用户运行Tomcat已被生命周期侦听器org.apache.catalina.security.security listener(通常在catalina_BASE/conf/server.xml中配置)阻止 -SecurityUtil.doAsPrivilege=运行privilegedexception块时发生异常。 - listener.notServer=此侦听器只能嵌套在 Server 元素中,但位于 [{0}] 中。\n diff --git a/java/org/apache/catalina/security/SecurityUtil.java b/java/org/apache/catalina/security/SecurityUtil.java deleted file mode 100644 index 5a245217b8..0000000000 --- a/java/org/apache/catalina/security/SecurityUtil.java +++ /dev/null @@ -1,412 +0,0 @@ -/* - * 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.catalina.security; - - -import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.security.Principal; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import javax.security.auth.Subject; - -import jakarta.servlet.Filter; -import jakarta.servlet.Servlet; -import jakarta.servlet.ServletException; -import jakarta.servlet.UnavailableException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpSession; - -import org.apache.catalina.Globals; -import org.apache.juli.logging.Log; -import org.apache.juli.logging.LogFactory; -import org.apache.tomcat.util.ExceptionUtils; -import org.apache.tomcat.util.res.StringManager; -/** - * This utility class associates a <code>Subject</code> to the current - * <code>AccessControlContext</code>. When a <code>SecurityManager</code> is - * used, the container will always associate the called thread with an - * AccessControlContext containing only the principal of the requested - * Servlet/Filter. - * - * This class uses reflection to invoke the methods. - */ - -public final class SecurityUtil{ - - // Note that indexes overlap. - // A Servlet uses "init", "service", "event", "destroy". - // A Filter uses "doFilter", "doFilterEvent", "destroy". - private static final int INIT= 0; - private static final int SERVICE = 1; - private static final int DOFILTER = 1; - private static final int EVENT = 2; - private static final int DOFILTEREVENT = 2; - private static final int DESTROY = 3; - - private static final String INIT_METHOD = "init"; - private static final String DOFILTER_METHOD = "doFilter"; - private static final String SERVICE_METHOD = "service"; - private static final String EVENT_METHOD = "event"; - private static final String DOFILTEREVENT_METHOD = "doFilterEvent"; - private static final String DESTROY_METHOD = "destroy"; - - /** - * Cache every class for which we are creating methods. - */ - private static final Map<Class<?>,Method[]> classCache = new ConcurrentHashMap<>(); - - private static final Log log = LogFactory.getLog(SecurityUtil.class); - - /** - * The string resources for this package. - */ - private static final StringManager sm = - StringManager.getManager(Constants.PACKAGE); - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Servlet</code> on which the method will - * be called. - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Servlet targetObject) throws Exception { - doAsPrivilege(methodName, targetObject, null, null, null); - } - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Servlet</code> on which the method will - * be called. - * @param targetType <code>Class</code> array used to instantiate a - * <code>Method</code> object. - * @param targetArguments <code>Object</code> array contains the runtime - * parameters instance. - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Servlet targetObject, - final Class<?>[] targetType, - final Object[] targetArguments) - throws Exception { - - doAsPrivilege(methodName, - targetObject, - targetType, - targetArguments, - null); - } - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Servlet</code> on which the method will - * be called. - * @param targetParameterTypes <code>Class</code> array used to instantiate a - * <code>Method</code> object. - * @param targetArguments <code>Object</code> array contains the - * runtime parameters instance. - * @param principal the <code>Principal</code> to which the security - * privilege applies - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Servlet targetObject, - final Class<?>[] targetParameterTypes, - final Object[] targetArguments, - Principal principal) - throws Exception { - - Method method = null; - Method[] methodsCache = classCache.get(Servlet.class); - if(methodsCache == null) { - method = createMethodAndCacheIt(null, - Servlet.class, - methodName, - targetParameterTypes); - } else { - method = findMethod(methodsCache, methodName); - if (method == null) { - method = createMethodAndCacheIt(methodsCache, - Servlet.class, - methodName, - targetParameterTypes); - } - } - - execute(method, targetObject, targetArguments, principal); - } - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Filter</code> on which the method will - * be called. - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Filter targetObject) - throws Exception { - - doAsPrivilege(methodName, targetObject, null, null); - } - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Filter</code> on which the method will - * be called. - * @param targetType <code>Class</code> array used to instantiate a - * <code>Method</code> object. - * @param targetArguments <code>Object</code> array contains the - * runtime parameters instance. - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Filter targetObject, - final Class<?>[] targetType, - final Object[] targetArguments) - throws Exception { - - doAsPrivilege( - methodName, targetObject, targetType, targetArguments, null); - } - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param methodName the method to apply the security restriction - * @param targetObject the <code>Filter</code> on which the method will - * be called. - * @param targetParameterTypes <code>Class</code> array used to instantiate a - * <code>Method</code> object. - * @param targetParameterValues <code>Object</code> array contains the - * runtime parameters instance. - * @param principal the <code>Principal</code> to which the security - * privilege applies - * @throws Exception an execution error occurred - */ - public static void doAsPrivilege(final String methodName, - final Filter targetObject, - final Class<?>[] targetParameterTypes, - final Object[] targetParameterValues, - Principal principal) - throws Exception { - - Method method = null; - Method[] methodsCache = classCache.get(Filter.class); - if(methodsCache == null) { - method = createMethodAndCacheIt(null, - Filter.class, - methodName, - targetParameterTypes); - } else { - method = findMethod(methodsCache, methodName); - if (method == null) { - method = createMethodAndCacheIt(methodsCache, - Filter.class, - methodName, - targetParameterTypes); - } - } - - execute(method, targetObject, targetParameterValues, principal); - } - - - /** - * Perform work as a particular <code>Subject</code>. Here the work - * will be granted to a <code>null</code> subject. - * - * @param method the method to apply the security restriction - * @param targetObject the <code>Servlet</code> on which the method will - * be called. - * @param targetArguments <code>Object</code> array contains the - * runtime parameters instance. - * @param principal the <code>Principal</code> to which the security - * privilege applies - * @throws Exception an execution error occurred - */ - private static void execute(final Method method, - final Object targetObject, - final Object[] targetArguments, - Principal principal) - throws Exception { - - try{ - Subject subject = null; - PrivilegedExceptionAction<Void> pea = - () -> { - method.invoke(targetObject, targetArguments); - return null; - }; - - // The first argument is always the request object - if (targetArguments != null - && targetArguments[0] instanceof HttpServletRequest){ - HttpServletRequest request = - (HttpServletRequest)targetArguments[0]; - - boolean hasSubject = false; - HttpSession session = request.getSession(false); - if (session != null){ - subject = - (Subject)session.getAttribute(Globals.SUBJECT_ATTR); - hasSubject = (subject != null); - } - - if (subject == null){ - subject = new Subject(); - - if (principal != null){ - subject.getPrincipals().add(principal); - } - } - - if (session != null && !hasSubject) { - session.setAttribute(Globals.SUBJECT_ATTR, subject); - } - } - - Subject.doAsPrivileged(subject, pea, null); - } catch( PrivilegedActionException pe) { - Throwable e; - if (pe.getException() instanceof InvocationTargetException) { - e = pe.getException().getCause(); - ExceptionUtils.handleThrowable(e); - } else { - e = pe; - } - - if (log.isDebugEnabled()){ - log.debug(sm.getString("SecurityUtil.doAsPrivilege"), e); - } - - if (e instanceof UnavailableException) { - throw (UnavailableException) e; - } else if (e instanceof ServletException) { - throw (ServletException) e; - } else if (e instanceof IOException) { - throw (IOException) e; - } else if (e instanceof RuntimeException) { - throw (RuntimeException) e; - } else { - throw new ServletException(e.getMessage(), e); - } - } - } - - - /** - * Find a method stored within the cache. - * @param methodsCache the cache used to store method instance - * @param methodName the method to apply the security restriction - * @return the method instance, null if not yet created. - */ - private static Method findMethod(Method[] methodsCache, - String methodName){ - if (methodName.equals(INIT_METHOD)){ - return methodsCache[INIT]; - } else if (methodName.equals(DESTROY_METHOD)){ - return methodsCache[DESTROY]; - } else if (methodName.equals(SERVICE_METHOD)){ - return methodsCache[SERVICE]; - } else if (methodName.equals(DOFILTER_METHOD)){ - return methodsCache[DOFILTER]; - } else if (methodName.equals(EVENT_METHOD)){ - return methodsCache[EVENT]; - } else if (methodName.equals(DOFILTEREVENT_METHOD)){ - return methodsCache[DOFILTEREVENT]; - } - return null; - } - - - /** - * Create the method and cache it for further re-use. - * @param methodsCache the cache used to store method instance - * @param targetType the class on which the method will be called. - * @param methodName the method to apply the security restriction - * @param parameterTypes <code>Class</code> array used to instantiate a - * <code>Method</code> object. - * @return the method instance. - * @throws Exception an execution error occurred - */ - private static Method createMethodAndCacheIt(Method[] methodsCache, - Class<?> targetType, - String methodName, - Class<?>[] parameterTypes) - throws Exception { - - if (methodsCache == null) { - methodsCache = new Method[4]; - } - - Method method = targetType.getMethod(methodName, parameterTypes); - - if (methodName.equals(INIT_METHOD)){ - methodsCache[INIT] = method; - } else if (methodName.equals(DESTROY_METHOD)){ - methodsCache[DESTROY] = method; - } else if (methodName.equals(SERVICE_METHOD)){ - methodsCache[SERVICE] = method; - } else if (methodName.equals(DOFILTER_METHOD)){ - methodsCache[DOFILTER] = method; - } else if (methodName.equals(EVENT_METHOD)){ - methodsCache[EVENT] = method; - } else if (methodName.equals(DOFILTEREVENT_METHOD)){ - methodsCache[DOFILTEREVENT] = method; - } - - classCache.put(targetType, methodsCache); - - return method; - } - - - /** - * Remove the object from the cache. - * - * @param cachedObject The object to remove - */ - public static void remove(Object cachedObject){ - classCache.remove(cachedObject); - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org