Я занимаюсь разработкой REST API, который поддерживает два вида протоколов аутентификации:REST API непроверенные запросы исключение на основе User-Agent
- Войти Форма аутентификации - для клиентов на основе браузера.
- Простая базовая аутентификация - для не-браузерных клиентов.
Я разработал поток, в котором неавторизованные запросы перенаправляются на «форму входа», проблема в том, что это нежелательное поведение для клиентов, не относящихся к серверу!
Я решил решить это, решив в соответствии с «User-Agent», что делать: браузеры будут перенаправлены на «форму входа», а клиенты без браузера получат стандартную 401: базовую аутентификацию.
A. Что вы думаете об этом решении?
B. Есть ли стандартный способ в Java, чтобы проверить, пришел ли запрос от браузера, или мне нужно разработать этот механизм самостоятельно?
Заранее благодарен!
Любопытно, почему у вас есть два разных механизма аутентификации? Обычная проверка подлинности работает в браузерах? –
Не совсем: 1. Безопасность: браузер «запоминает» BA + в форме входа в систему, я могу перенаправить клиента на https. 2. User-expirience: Форма входа более точно сравнивается с BA. –
Шей, вы создаете сеанс для клиентов браузера при успешной аутентификации? Если это так, я ожидаю, что это будет довольно запутанно иметь дело с взаимодействиями с состоянием (браузером) и безстоящим (без браузера) в одном и том же коде на стороне сервера. –