|
Авторизация в REST
|
|||
---|---|---|---|
#18+
Добрый день, коллеги! Необходимо написать REST-сервис для получения и изменения данных БД. Взаимодействие будет: Andoid -> HttpClient (OkHttpClient)->REST-сервис Проблемное место: Пользователь Android`а при входе в приложение должен авторизоваться (логин/пароль) Авторизация идет в БД (т.е. пользователь в БД) После удачной авторизации, по моей задумке, на сервисе должен сгенерится некий токен, который хранится где-то в недрах сервиса, например в сеансе + отсылается ответом в андройд. Далее андройд приложение общается с REST-сервисом уже посредством проверки токена (сравнение клинтского с сервисным). Не понимаю как мне реализовать такую схему. Для REST сервиса не существует такого понятия как сессия, т.к. это не сервлет и его задачу другая. Я конечно могу токены ложить в БД, напротив пользователя, но как мне кажется это не правильно. Любой кто имеет доступ к таблице пользователей, может посмотреть его токен и сделать запрос по него на приватные данные. Есть предложения? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 15:46 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVЛюбой кто имеет доступ к таблице пользователей так может не давать любому доступ к таблице пользователей? Если у вас "любой" в базе хозяйничает, то смысла в авторизации никакого - он себе создаст пользователя с любыми правами или проапдейтит существующего. Если "сессия" не нужна или нежелательна, то пусть клиент при каждом запросе просто авторизуется. Добавить для этого interceptor в okhttp и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:02 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
chpashaAndronovMVЛюбой кто имеет доступ к таблице пользователей так может не давать любому доступ к таблице пользователей? Если у вас "любой" в базе хозяйничает, то смысла в авторизации никакого - он себе создаст пользователя с любыми правами или проапдейтит существующего. 1. Для системных и служебных таблиц для всех пользователей кроме админов права только на чтение, так что они там не хозяева. chpashaЕсли "сессия" не нужна или нежелательна, то пусть клиент при каждом запросе просто авторизуется. Добавить для этого interceptor в okhttp и все. 2. Оне не то чтобы не нужна или нежелательна, она просто не работает для REST-сервиса. Любое обращение с сервису не из браузера (из HttpClient клиента) порождает новую сессию на сервисе, что является проблемой для поддержания связей с клиентом. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:10 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
Помимо BASIC-авторизации больше нет вариантов? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:11 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
Мне кажется, что эта статья Вам бы помогла. https://www.baeldung.com/securing-a-restful-web-service-with-spring-security ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:36 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVПомимо BASIC-авторизации больше нет вариантов?forms. Настройка 10 мин в веб.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:40 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVПользователь Android`аможет браузер в андроиде?)) :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:42 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVсгенерится некий токенпроще без токенов, сессия и forms авторизация ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:44 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVОне не то чтобы не нужна или нежелательна, она просто не работает для REST-сервиса. Любое обращение с сервису не из браузера (из HttpClient клиента) порождает новую сессию на сервисе, что является проблемой для поддержания связей с клиентом.конечно. Другая программа в андроиде порождаетнву сесссию. Даже вкладка может) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 16:46 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
PetroNotC SharpAndronovMVПользователь Android`аможет браузер в андроиде?)) :)) Не не) HttpClient. Я Использую retrofit ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 18:38 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVДля системных и служебных таблиц для всех пользователей кроме админов права только на чтение, так что они там не хозяева ну так в чем проблема, надо забрать права даже на чтение у таблицы с "сессиями" и все AndronovMVпросто не работает для REST-сервиса отлично все работает. На спринг уже ссылались тут, в двух словах EnableJdbcHttpSession + HeaderHttpSessionIdResolver - будет при аутентификации кидать в header токен-аутентификации, который можно передавать опять же таки в header при всех запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 18:57 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVPetroNotC Sharpпропущено... может браузер в андроиде?)) :)) Не не) HttpClient. Я Использую retrofitну дак при forms все делает бэкенд. Тебе в клиенте в поле только поставить логин и пароль. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 19:11 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
chpasha, Боюсь у него спринга нет и не будет. Раз он столько про бд пишет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 19:12 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
ТС, не понял в чем проблема. По документации, библиотка поддерживает базовую (заголовки запроса) и через токены (JWT на бэке). Что не работает то? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 19:35 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVДля REST сервиса не существует такого понятия как сессия, т.к. это не сервлет и его задачу другая.тут можно поспорить. Если сервлет выдает json то это тот же rest. Я лично из session based/token based больше предпочитаю сессию. Странно что либа ведра не умеет работать с сессией. Там ведь просто между запросами нужно держать переменную и не обнулять. Имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 20:37 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
PetroNotC Sharpchpasha, Боюсь у него спринга нет и не будет. Раз он столько про бд пишет. Все верно! Ну придется посмотреть в на спринг ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 09:08 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMVPetroNotC Sharpchpasha, Боюсь у него спринга нет и не будет. Раз он столько про бд пишет. Все верно! Ну придется посмотреть в на спрингхммм. И как андроид программисты бэк без спринга пишут? Тут главное кто одеяло на себя перетянет). Бэк или фронт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 10:55 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
PetroNotC SharpAndronovMVпропущено... Все верно! Ну придется посмотреть в на спрингхммм. И как андроид программисты бэк без спринга пишут? Тут главное кто одеяло на себя перетянет). Бэк или фронт. а зачем тебе бэк писать? бэк в принципе можно писать на чем угодно )) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 12:55 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
AndronovMV Любой кто имеет доступ к таблице пользователей, может посмотреть его токен и сделать запрос по него на приватные данные. Любому, у которого есть доступ в базу, проще сразу посмотреть приватные данные, а не заморачиваться с токенами! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 13:04 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
andreykaTа зачем тебе бэк писать? бэк в принципе можно писать на чем угодно ))не понял вопрс. Автор спросил как делать рест в топике java. Можно и пыхе. Тогда что за вопрос) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 13:34 |
|
Авторизация в REST
|
|||
---|---|---|---|
#18+
SQL2008, +1 Автор проблемами не делится. Хочет спринг изучать - удачи ему. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 13:36 |
|
|
start [/forum/topic.php?fid=59&fpage=25&tid=2121211]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 424ms |
0 / 0 |