Отключить проверку идентификатора JSession для одного конкретного клиента - PullRequest
0 голосов
/ 18 января 2019

У меня на веб-сервере Jetty работает приложение spring-mvc (WAR). Аутентификация выполняется с помощью действия j_security_check. Пользователь предоставляет учетные данные со страницы входа в систему, которые проверяются с помощью действия J_Security_check, и в дальнейшем пользователь может просматривать все страницы. JSessionID поддерживается на сервере, и cookie отправляется обратно в ответ. Пользовательский интерфейс находится в JSP, и контроллеры определены для функциональной обработки. Эта часть работает нормально.

Теперь у нас был еще один клиент (UI), который хочет использовать те же контроллеры, отправив ему http-запрос (get / post). Здесь view - другое приложение, и они просто хотят использовать контроллеры. Они отправят http-запрос, захотят получить http-ответ и будут обрабатывать часть отображения.

Разница здесь в том, что они хотят, чтобы логика аутентификации была немного другой, они будут предоставлять заголовок авторизации (закодированные в базе 16 учетные данные) в каждом запросе, который мы можем проверить с помощью транзакции БД и передать его контроллеру, и мы должны пропустить Проверка JSessionId. нам не нужен сеанс для этого конкретного клиента.

Я могу добавить эту логику в перехватчик, где на основе заголовка мы можем определить, что этот конкретный запрос поступил от другого клиента, и добавить логику аутентификации. Но проблема в том, что webServer не разрешает посылать запрос на сервер, если другой клиент не отправляет JSessionID в запросе.

есть ли способ пропустить проверку JSesssionID для одного конкретного клиента, и то же самое должно продолжиться для нашего приложения Spring mvc war?

Пожалуйста, ответьте и предложите. Я могу уточнить, если мой вопрос не так ясен.

С уважением Munish

...