Я пытаюсь устранить проблему.Пользователь вошел в приложение, используя CAS SSO.Этот пользователь вошел в учетную запись другого пользователя - обычно в учетную запись пользователя, которая вошла в систему за несколько секунд до этого.У кого-нибудь есть идеи относительно того, почему это происходит и как его решить?
Мы применили временный обходной путь, который заключается в том, чтобы раз в неделю перебирать веб-серверы ротационным образом, чтобы очистить всесессий.Это, кажется, мешает каждому добраться до точки, где эта проблема возникает.Конечно, мы не хотим, чтобы это было постоянным решением.
В этих системах работает Apache Tomcat 8.0.15 и CAS версии 3.6
Мы собираемся обновить Tomcat до 8.5.35 и, возможно,исправляет это, но мы предпочитаем часть разума доказательства.До сих пор мы не нашли ничего в примечаниях к выпуску или исправлениях ошибок, которые, по нашему мнению, точно соответствовали проблеме, с которой мы столкнулись.Таким образом, мы также не хотим исключать возможную ошибку конфигурации в настоящее время.
Так что, если у кого-то есть какие-либо предложения по поводу причины или, что еще лучше, видели это раньше и знаете, что это исправило для вас, пожалуйста, поделитесь.
Мы обнаружили следующее сообщение об ошибке:
05-Dec-2018 13: 51: 07.477 SEVERE [catalina-exec-149] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service () для сервлета [cas] в контексте с путем [/cas] сгенерировал исключение [Ошибка обработки запроса;вложенным исключением является java.lang.NullPointerException] с основной причиной
java.lang.NullPointerException
Нам кажется, что он больше не может получить sessionID и вместо того, чтобы не разрешать новый сеанс,он просто использует предыдущий активный sessionID.Звучит как ошибка, но опять-таки не нашли окончательного доказательства того, что она исправлена в выпуске, который мы также обновляем.
Ниже приведена запись из журналов доступа пользователя, чей jsessionid был повторно использован, вызывая несанкционированный доступ.IP-адреса и другая идентифицируемая информация в журналах ниже были специально изменены.
Посмотрите, как два разных IP-адреса оба получили один и тот же идентификатор сеанса.11 / Dec / 2018: 18: 07: 00 -0500] GET /cas/login?service=https%3A%2F%2Fsed.instructure.com%2Flogin%2Fcas HTTP / 1.1 200 5831 - Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 70.0.3538.110 Safari / 537.36 -
Заранее спасибо за помощь.