С каких пор URL-адрес XML-схемы, используемый весной, начал поддерживаться только с более чем TLS1.2?

#java #spring #ssl #xsd

Вопрос:

Я создал веб-приложение с Spring 3.2.18.RELEASE, JDK7 и Tomcat7 ранее.

Недавно я развернул несколько файлов jsp и перезапустил Tomcat, и он показал мне это сообщение об ошибке.

 Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 130; cvc-elt.1: Cannot find the declaration of element 'beans'.
 

Оказалось, что я установил xsi:schemaLocation в ‘https://www.springframework.org/schema/beans/spring-beans.xsd

и не было возможности загрузить xml из-за версии JDK TLS.


Поэтому я погуглил, когда xml-схема перестала поддерживать TLS 1.0 и 1.1.

но я не смог их найти.

Я уже узнал, что мне нужно обновить Spring, JDK и Tomcat, прочитав десятки статей.

Я надеюсь, что кто-нибудь сможет сказать мне, КОГДА это произошло или

было бы благодарно, если бы вы хотя бы дали мне знать, где его найти.

пс. Я не мог найти ответ на www.springframework.org. Я пометил здесь «весенний ботинок», потому что там написано, что я могу получить помощь с помощью этого.


обновленный

Мне жаль, что мой вопрос был двусмысленным.

Благодаря ряду статей и комментариев здесь я узнал, как решить свою проблему, и это отлично сработало.

Причина, по которой я опубликовал этот вопрос, заключается в том, что

если я добавлю опцию-Dhttps.protocols=TLSv1.2, мое веб-приложение будет работать нормально, как и раньше.

Если я изменю его на TLSv1.0 или v1.1, я увижу точно такое же сообщение об ошибке.

Веб-приложение прекрасно работало без него раньше, и теперь для него требуется опция, по крайней мере, на JDK7.

Моя коллега сказала,что 20 октября она в последний раз перезапускала Tomcat, и все было в порядке.

Поэтому я верю,что что-то произошло между 20 октября и вчерашним днем.

Комментарии:

1. Проблема с этим URL-адресом заключается в том, что он не заменяется в Spring 3.2 и, следовательно, выходит в Интернет. Вместо этого используйте http, и он разрешит его из файла (он включен в файл jar), и ему не требуется подключение к Интернету.

2. @M. Deinum Вы правы. Я уже видел spring-beans-3.2.xsd в spring jar. Поэтому я выделил жирным шрифтом «https». Я также знаю, что TLS1.0 и 1.1 гораздо менее безопасны, чем 1.2, поэтому я могу понять, что они больше не поддерживаются. Вопрос в ТОМ, ПОЧЕМУ версия TLS стала проблемой СЕЙЧАС и с тех ПОР, как они начали не поддерживаться.

3. Пожалуйста, прочтите мой комментарий. Поддержка TLS здесь не имеет значения. Дело в том, что Spring 3.2 еще не поддерживает разрешение файла для https (их нет в файле spring.schemas), поэтому он отправляется в Интернет вместо разрешения из jar. Последнее-это то, чего не должно происходить (но это потому, что в файле spring.schemas нет псевдонима https). С более новыми версиями Spring не имеет значения, является ли это http или https, они разрешаются из jar, а не из Интернета.

4. @M. Deinum Если URL-адрес начинается с «https» весной 3.2.x, он его не разрешает. Я знаю. Чтобы запустить веб-приложение в текущих обстоятельствах, я должен изменить его на http, а TLS, как вы сказали, не имеет значения. С этим абсолютно не поспоришь. Но подумай вот о чем. Если я добавлю опцию «- Dhttps.protocols=TLSv1.2 » и перезапущу Tomcat, он снова будет работать нормально, даже если это все еще https. Вот почему я задал этот вопрос. Веб-приложение работало нормально, пока я вчера не перезапустил Tomcat, даже без опции JVM. И я слышал от своего коллеги, что 20 октября все было в порядке. Я полагаю, что что-то произошло между 20 октября и вчерашним днем.

5. Нет, вам не нужно менять его на https… Что заставляет вас думать, что вам нужно/необходимо изменить его на https… Это не URL-адрес, это пространство имен.

Ответ №1:

Я не знаю точно, когда www.springframework.org перестала поддерживать TLSv1.0, 1.1

но я уверен, что это может быть между 20 октября и 10 ноября.


В последнее время многие браузеры начинают прекращать поддержку TLSv1.0 и 1.1 из-за мер безопасности.

И я думаю, что именно поэтому www.springframework.org сделал это.


Люди.

Пожалуйста, обновите свой JDK или, по крайней мере, TLS заранее. ( Т^Т)