Miranda NG Official Community Forum
Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: Oneiron on 18 05 2015, 13:10:21
-
После обновления на новую версию OpenFire (3.10) столкнулся с мелкой неприятностью: отвалился Single Sign-On.
Заставил миранду генерировать нетстат-логи, в коих обнаружил строку:
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><incorrect-encoding/></failure>
При прочих равных подключение с сервером 3.10 не выполняется.
Поскольку других клиентов с GSSAPI я не знаю, решил все-таки написать сюда.
В чейнджлоге OpenFire они пишут что исправили баг OF-736 (https://igniterealtime.org/issues/browse/OF-736) который напрямую связан как раз с SASL и неправильным формированием base64.
Может ли быть проблема в способе, которым запрос формирует миранда?
-
проверял gssapi на 3.10, все работало ок, как у тебя SSO заведен? Не через плагин случайно?
-
В том-то вся и веселуха, что через SASL-плагин под виндой все отлично работает.
А через GSSAPI с серваком на линуксе - обновляюсь и все, хана.
-
Есть аналогичная тема в форумах Ignite Realtime. Буду вопрошать у них.
Magic, а что у тебя за конфигурё?
-
Есть аналогичная тема в форумах Ignite Realtime. Буду вопрошать у них.
Magic, а что у тебя за конфигурё?
openfire на винде, SSO через керберос билеты, работает без проблем в 3.9.1 и в 3.10.0.
на линухе SSO к сожалению не поднимал :(
-
Не нашли в чем проблема? Тоже отломалось SSO на винде, после апдейта на 3.10.2:
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><incorrect-encoding/></failure>
Откатываешь ту же инсталляцию на 3.9.1 - все работает.
-
Не нашел, и не только я...
Вот тема форума уже на igniterealtime - https://community.igniterealtime.org/thread/55544
До сих пор везде 3.9.3 стоит.
-
нашел :)
Проблема в этом патче:
https://github.com/igniterealtime/Openfire/commit/3eadecb67daddbcaeb1dc76ec578ed0f70e96ad8
Там 2 проверки на корректность передаваемого response, но клиенты могут отдавать пустой response(что и делает миранда в первом ответе) ( The initiating entity responds to the challenge by sending a
<response/> element qualified by the
'urn:ietf:params:xml:ns:xmpp-sasl' namespace; this element MAY
contain XML character data.)
https://tools.ietf.org/html/rfc6120#section-6.4.2
Тут есть проверка на длину строки:
@@ -301,9 +305,14 @@ else if (mechanisms.contains(mechanism)) {
// evaluateResponse doesn't like null parameter
byte[] token = new byte[0];
- if (doc.getText().length() > 0) {
+ String value = doc.getTextTrim();
+ if (value.length() > 0) {
+ if (!BASE64_ENCODED.matcher(value).matches()) {
+ authenticationFailed(session, Failure.INCORRECT_ENCODING);
+ return Status.failed;
+ }
// If auth request includes a value then validate it
- token = StringUtils.decodeBase64(doc.getText().trim());
+ token = StringUtils.decodeBase64(value);
if (token == null) {
token = new byte[0];
}
А тут нет:
@@ -354,6 +363,10 @@ else if (mechanisms.contains(mechanism)) {
if (ss != null) {
boolean ssComplete = ss.isComplete();
String response = doc.getTextTrim();
+ if (!BASE64_ENCODED.matcher(response).matches()) {
+ authenticationFailed(session, Failure.INCORRECT_ENCODING);
+ return Status.failed;
+ }
try {
if (ssComplete) {
authenticationSuccessful(session, ss.getAuthorizationID(),
Если во втором блоке написать так:
if (response.length() > 0) {
if (!BASE64_ENCODED.matcher(response).matches()) {
authenticationFailed(session, Failure.INCORRECT_ENCODING);
return Status.failed;
}
}
То все работает прекрасно.
К сожалению не программист, как корректно сделать им пулл реквест не знаю :(
-
Патченный openfire.jar от версии 3.10.2 - http://ge.tt/api/1/files/3pBmYVJ2/0/blob?download
проверьте?
закинуть в lib, рестартнуть сервис.
-
О, это прекрасно. Завтра проверю.
-
Все работает, равно как на виндах, так и на линях.
-
Все работает, равно как на виндах, так и на линях.
Пробую до разрабов это донести, поскольку отломалась не только миранда, Psi, JaJC тоже не работают. Другие не проверял.
На голом 3.10 работает походу только последняя версия Spark :)
-
Да, я видел уже как резко оживилась ветка :)
-
https://community.igniterealtime.org/message/251139#251139
исправили вроде, ждемс 3.10.3
-
Прекрасно! Интересно лишь, когда они ее выпустят :)
-
Magic, у тебя 3.10.3 нормально отрабатывает? У меня вот что-то нет...
-
Magic, у тебя 3.10.3 нормально отрабатывает? У меня вот что-то нет...
Да, все отлично