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 5fa161107bd53612432d995357ec8b1c3ee46299
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Dec 8 13:19:53 2021 +0000

    Remove support for ALLOW_UNSUPPORTED_EXTENSIONS
    
    All extensions are optional. If an endpoint declares an extension that
    isn't supported no need for an error - just exclude it from the result
    of the negotiation.
---
 java/org/apache/tomcat/websocket/Constants.java               |  2 --
 java/org/apache/tomcat/websocket/LocalStrings.properties      |  2 --
 java/org/apache/tomcat/websocket/LocalStrings_fr.properties   |  2 --
 java/org/apache/tomcat/websocket/LocalStrings_ja.properties   |  2 --
 java/org/apache/tomcat/websocket/LocalStrings_ko.properties   |  2 --
 .../org/apache/tomcat/websocket/LocalStrings_zh_CN.properties |  2 --
 java/org/apache/tomcat/websocket/TransformationFactory.java   | 11 +----------
 webapps/docs/changelog.xml                                    | 11 +++++++++++
 webapps/docs/config/systemprops.xml                           |  6 ------
 9 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/java/org/apache/tomcat/websocket/Constants.java 
b/java/org/apache/tomcat/websocket/Constants.java
index 5e1d124..6ecdc48 100644
--- a/java/org/apache/tomcat/websocket/Constants.java
+++ b/java/org/apache/tomcat/websocket/Constants.java
@@ -136,8 +136,6 @@ public class Constants {
      */
     static final boolean DISABLE_BUILTIN_EXTENSIONS =
             
Boolean.getBoolean("org.apache.tomcat.websocket.DISABLE_BUILTIN_EXTENSIONS");
-    static final boolean ALLOW_UNSUPPORTED_EXTENSIONS =
-            
Boolean.getBoolean("org.apache.tomcat.websocket.ALLOW_UNSUPPORTED_EXTENSIONS");
 
     public static final boolean STRICT_SPEC_COMPLIANCE =
             
Boolean.getBoolean("org.apache.tomcat.websocket.STRICT_SPEC_COMPLIANCE");
diff --git a/java/org/apache/tomcat/websocket/LocalStrings.properties 
b/java/org/apache/tomcat/websocket/LocalStrings.properties
index 9031baf..c755121 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings.properties
@@ -45,8 +45,6 @@ perMessageDeflate.invalidState=Invalid state
 perMessageDeflate.invalidWindowSize=An invalid windows of [{1}] size was 
specified for [{0}]. Valid values are whole numbers from 8 to 15 inclusive.
 perMessageDeflate.unknownParameter=An unknown extension parameter [{0}] was 
defined
 
-transformerFactory.unsupportedExtension=The extension [{0}] is not supported
-
 util.invalidMessageHandler=The message handler provided does not have an 
onMessage(Object) method
 util.invalidType=Unable to coerce value [{0}] to type [{1}]. That type is not 
supported.
 util.notToken=An illegal extension parameter was specified with name [{0}] and 
value [{1}]
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_fr.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_fr.properties
index e681368..6dedb96 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_fr.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_fr.properties
@@ -44,8 +44,6 @@ perMessageDeflate.invalidState=Etat invalide
 perMessageDeflate.invalidWindowSize=Une taille [{1}] de fenêtre invalide a été 
spécifiée pour [{0}], les valeurs valides sont les entiers de 8 à 15 inclus
 perMessageDeflate.unknownParameter=Un paramètre d''extension inconnu [{0}] a 
été défini
 
-transformerFactory.unsupportedExtension=L''extension [{0}] n''est pas supportée
-
 util.invalidMessageHandler=Le gestionnaire de messages fourni n'a pas de 
méthode onMessage(Object)
 util.invalidType=Incapable de convertir la valeur [{0}] en le type [{1}]. Ce 
type n''est pas supporté.
 util.notToken=Un paramètre d''extension illégal a été spécifié avec le nom 
[{0}] et la valeur [{1}]
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_ja.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_ja.properties
index cc32f3a..382944e 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_ja.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_ja.properties
@@ -44,8 +44,6 @@ perMessageDeflate.invalidState=不正な状態です。
 perMessageDeflate.invalidWindowSize=[{0}] のウインドウサイズに無効な値 [{1}] 
が指定されました。ウインドウサイズは 8 以上 15 以下でなければなりません。
 perMessageDeflate.unknownParameter=未知の拡張パラメーター [{0}] が指定されました。
 
-transformerFactory.unsupportedExtension=未対応の拡張 [{0}] です。
-
 util.invalidMessageHandler=提供されたメッセージハンドラにonMessage(Object)メソッドがありません
 util.invalidType=値[{0}]をタイプ[{1}]に強制できません。 このタイプはサポートされていません。
 util.notToken=パラメーター名 [{0}]、値 [{1}] の不正な拡張パラメーターが指定されました。
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_ko.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_ko.properties
index 74d9468..2297888 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_ko.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_ko.properties
@@ -44,8 +44,6 @@ perMessageDeflate.invalidState=유효하지 않은 상태
 perMessageDeflate.invalidWindowSize=크기가 [{1}]인 유효하지 않은 윈도우들이 [{0}]을 위해 
지정되었습니다. 유효한 값들의 범위는 8에서 15까지의 모든 숫자들입니다.
 perMessageDeflate.unknownParameter=알 수 없는 확장 파라미터 [{0}]은(는), 정의되지 않았습니다.
 
-transformerFactory.unsupportedExtension=Extension [{0}]은(는) 지원되지 않습니다.
-
 util.invalidMessageHandler=제공된 메시지 핸들러에 onMessage(Object) 메소드가 없습니다.
 util.invalidType=[{0}] 값을 타입 [{1}](으)로 강제 변환시킬 수 없습니다. 해당 타입은 지원되지 않습니다.
 util.notToken=허용되지 않는 확장 파라미터가 지정되었습니다. 이름: [{0}], 값: [{1}].
diff --git a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties 
b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
index 0ebc3fe..eac229a 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings_zh_CN.properties
@@ -45,8 +45,6 @@ perMessageDeflate.invalidState=无效状态
 perMessageDeflate.invalidWindowSize=为[{0}]指定了[{1}]大小的无效窗口。 
有效值是从8到15(包括8和15)的整数。
 perMessageDeflate.unknownParameter=定义了未知的扩展参数[{0}]
 
-transformerFactory.unsupportedExtension=不支持扩展名[{0}]。
-
 util.invalidMessageHandler=提供的消息处理程序没有onMessage(对象)方法。
 util.invalidType=无法强制值[{0}]转为[{1}]类型(不支持次类型)。
 util.notToken=一个非法的扩展参数被指定为名称[{0}]和值[{0}]
diff --git a/java/org/apache/tomcat/websocket/TransformationFactory.java 
b/java/org/apache/tomcat/websocket/TransformationFactory.java
index 9d2b37c..c1eae21 100644
--- a/java/org/apache/tomcat/websocket/TransformationFactory.java
+++ b/java/org/apache/tomcat/websocket/TransformationFactory.java
@@ -20,12 +20,8 @@ import java.util.List;
 
 import jakarta.websocket.Extension;
 
-import org.apache.tomcat.util.res.StringManager;
-
 public class TransformationFactory {
 
-    private static final StringManager sm = 
StringManager.getManager(TransformationFactory.class);
-
     private static final TransformationFactory factory = new 
TransformationFactory();
 
     private TransformationFactory() {
@@ -41,11 +37,6 @@ public class TransformationFactory {
         if (PerMessageDeflate.NAME.equals(name)) {
             return PerMessageDeflate.negotiate(preferences, isServer);
         }
-        if (Constants.ALLOW_UNSUPPORTED_EXTENSIONS) {
-            return null;
-        } else {
-            throw new IllegalArgumentException(
-                    sm.getString("transformerFactory.unsupportedExtension", 
name));
-        }
+        return null;
     }
 }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 139118d..942a5b5 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -132,6 +132,17 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="WebSocket">
+    <changelog>
+      <fix>
+        Remove the <code>ALLOW_UNSUPPORTED_EXTENSIONS</code> system property. 
As
+        per RFC 6455, all extensions are optional. If an endpoint declares an
+        extension that isn't supported there is no need to trigger an error. 
The
+        extension can just be excluded from the result of the negotiation.
+        (markt)
+      </fix>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 10.1.0-M8 (markt)" rtext="2021-12-08">
   <subsection name="Catalina">
diff --git a/webapps/docs/config/systemprops.xml 
b/webapps/docs/config/systemprops.xml
index 564fb87..392a302 100644
--- a/webapps/docs/config/systemprops.xml
+++ b/webapps/docs/config/systemprops.xml
@@ -259,12 +259,6 @@
 
   <properties>
 
-    <property name="org.apache.tomcat. websocket.ALLOW_UNSUPPORTED_EXTENSIONS">
-      <p>If <code>true</code>, allow unknown extensions to be declared by
-      the user.</p>
-      <p>The default value is <code>false</code>.</p>
-    </property>
-
     <property name="org.apache.tomcat. websocket.DEFAULT_BUFFER_SIZE">
       <p>The default size for buffers used in the Websockets container.</p>
       <p>The default value is <code>8192</code> which corresponds to 8KB.</p>

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

Reply via email to