Я прочитал много обсуждений об аутентификации, авторизации и т. Д. С услугами REST. Теперь у меня есть идея, как сделать аутентификацию/авторизацию с помощью REST.Контроль доступа к странице с услугой REST
Но я не понял, как контролировать доступ к веб-странице с помощью службы REST. Это хорошая практика? Если да, то как?
Пример:
корень REST услуг: LOCALHOST/услуги
корень веб-страниц: LOCALHOST/страницы
Теперь, сценарий:
1. Клиент пытается перейти на страницу localhost/pages/join.html
, но он не имеет права доступа.
2. Таким образом, сервер должен проверить, имеет ли клиент право доступа к странице, а так как он не имеет права, должен перенаправить клиента куда-нибудь.
Мой вопрос не в том, как сервер будет проверять, понимать, имеет ли клиент право или нет.
Однако, я хочу знать, когда и как я мог выполнить эту проверку и перенаправление с помощью службы REST.
Например, первая мысль, которая приходит на ум мой, в теле join.html
с <body onload>
запустить яваскрипта, который проверяет права доступа клиента, отправив сообщение JSON для REST службы, скажем, к localhost/services/access
.
Затем служба вернет свой ответ, и, если это будет нормально, страница будет загружена, если нет, она будет перенаправлена с помощью window.location.href
. Является ли это способом выбора права доступа к веб-странице с помощью службы REST? Есть ли другое общее решение/практика?
Пожалуйста, еще раз, что я не спрашиваю, как обезопасить свой REST API и т.д., но
Как проверить права доступа к своим веб-страницам с REST службы?
Спасибо за ответ. Я понимаю, что служба REST не подходит для такого рода вещей, не так ли? Итак, скажем, я использую фильтр сервлетов, например, и он находится в другом проекте (.war), чем мои службы REST. Как я могу понять, прошел ли аутентификация пользователя с помощью моих служб REST? (не используя базу данных). Поскольку клиент посылает маркер, куки-файлы или что-то другое для сервлета, взятого из службы REST, Servlet не сможет проверить этот токен, так как он не имеет правильного. Итак, я должен спросить об этом в моем сервисе REST из Сервлета? Это не кажется хорошей практикой, верно? –
Контроль доступа должен быть привязан к серверу службы отдыха, см. Мой обновленный ответ. – ltebean
Но вещь, которую я не вижу, - это: requeest сделан в /pages/a.html, который не является службой REST. Как прервать это и использовать службу REST? –