Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Авторизация в REST / 22 сообщений из 22, страница 1 из 1
05.07.2019, 15:46
    #39834407
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
Добрый день, коллеги!

Необходимо написать REST-сервис для получения и изменения данных БД.
Взаимодействие будет: Andoid -> HttpClient (OkHttpClient)->REST-сервис

Проблемное место:
Пользователь Android`а при входе в приложение должен авторизоваться (логин/пароль)
Авторизация идет в БД (т.е. пользователь в БД)
После удачной авторизации, по моей задумке, на сервисе должен сгенерится некий токен, который хранится где-то в недрах сервиса, например в сеансе + отсылается ответом в андройд. Далее андройд приложение общается с REST-сервисом уже посредством проверки токена (сравнение клинтского с сервисным).

Не понимаю как мне реализовать такую схему. Для REST сервиса не существует такого понятия как сессия, т.к. это не сервлет и его задачу другая. Я конечно могу токены ложить в БД, напротив пользователя, но как мне кажется это не правильно. Любой кто имеет доступ к таблице пользователей, может посмотреть его токен и сделать запрос по него на приватные данные.

Есть предложения? )
...
Рейтинг: 0 / 0
05.07.2019, 16:02
    #39834416
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVЛюбой кто имеет доступ к таблице пользователей
так может не давать любому доступ к таблице пользователей? Если у вас "любой" в базе хозяйничает, то смысла в авторизации никакого - он себе создаст пользователя с любыми правами или проапдейтит существующего.

Если "сессия" не нужна или нежелательна, то пусть клиент при каждом запросе просто авторизуется. Добавить для этого interceptor в okhttp и все.
...
Рейтинг: 0 / 0
05.07.2019, 16:10
    #39834425
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
chpashaAndronovMVЛюбой кто имеет доступ к таблице пользователей
так может не давать любому доступ к таблице пользователей? Если у вас "любой" в базе хозяйничает, то смысла в авторизации никакого - он себе создаст пользователя с любыми правами или проапдейтит существующего.

1. Для системных и служебных таблиц для всех пользователей кроме админов права только на чтение, так что они там не хозяева.
chpashaЕсли "сессия" не нужна или нежелательна, то пусть клиент при каждом запросе просто авторизуется. Добавить для этого interceptor в okhttp и все.

2. Оне не то чтобы не нужна или нежелательна, она просто не работает для REST-сервиса. Любое обращение с сервису не из браузера (из HttpClient клиента) порождает новую сессию на сервисе, что является проблемой для поддержания связей с клиентом.
...
Рейтинг: 0 / 0
05.07.2019, 16:11
    #39834427
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
Помимо BASIC-авторизации больше нет вариантов?
...
Рейтинг: 0 / 0
05.07.2019, 16:36
    #39834440
shaden
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
Мне кажется, что эта статья Вам бы помогла.
https://www.baeldung.com/securing-a-restful-web-service-with-spring-security
...
Рейтинг: 0 / 0
05.07.2019, 16:40
    #39834443
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVПомимо BASIC-авторизации больше нет вариантов?forms. Настройка 10 мин в веб.xml
...
Рейтинг: 0 / 0
05.07.2019, 16:42
    #39834444
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVПользователь Android`аможет браузер в андроиде?)) :))
...
Рейтинг: 0 / 0
05.07.2019, 16:44
    #39834446
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVсгенерится некий токенпроще без токенов, сессия и forms авторизация
...
Рейтинг: 0 / 0
05.07.2019, 16:46
    #39834447
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVОне не то чтобы не нужна или нежелательна, она просто не работает для REST-сервиса. Любое обращение с сервису не из браузера (из HttpClient клиента) порождает новую сессию на сервисе, что является проблемой для поддержания связей с клиентом.конечно. Другая программа в андроиде порождаетнву сесссию.
Даже вкладка может)
...
Рейтинг: 0 / 0
05.07.2019, 18:38
    #39834481
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
PetroNotC SharpAndronovMVПользователь Android`аможет браузер в андроиде?)) :))
Не не) HttpClient. Я Использую retrofit
...
Рейтинг: 0 / 0
05.07.2019, 18:57
    #39834483
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVДля системных и служебных таблиц для всех пользователей кроме админов права только на чтение, так что они там не хозяева
ну так в чем проблема, надо забрать права даже на чтение у таблицы с "сессиями" и все

AndronovMVпросто не работает для REST-сервиса
отлично все работает. На спринг уже ссылались тут, в двух словах EnableJdbcHttpSession + HeaderHttpSessionIdResolver - будет при аутентификации кидать в header токен-аутентификации, который можно передавать опять же таки в header при всех запросах.
...
Рейтинг: 0 / 0
05.07.2019, 19:11
    #39834486
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVPetroNotC Sharpпропущено...
может браузер в андроиде?)) :))
Не не) HttpClient. Я Использую retrofitну дак при forms все делает бэкенд.
Тебе в клиенте в поле только поставить логин и пароль.
...
Рейтинг: 0 / 0
05.07.2019, 19:12
    #39834487
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
chpasha,
Боюсь у него спринга нет и не будет. Раз он столько про бд пишет.
...
Рейтинг: 0 / 0
05.07.2019, 19:35
    #39834489
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
ТС, не понял в чем проблема.
По документации, библиотка поддерживает базовую (заголовки запроса) и через токены (JWT на бэке).
Что не работает то?
...
Рейтинг: 0 / 0
05.07.2019, 20:37
    #39834495
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVДля REST сервиса не существует такого понятия как сессия, т.к. это не сервлет и его задачу другая.тут можно поспорить. Если сервлет выдает json то это тот же rest.
Я лично из session based/token based больше предпочитаю сессию.
Странно что либа ведра не умеет работать с сессией. Там ведь просто между запросами нужно держать переменную и не обнулять.
Имхо.
...
Рейтинг: 0 / 0
08.07.2019, 09:08
    #39834864
AndronovMV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
PetroNotC Sharpchpasha,
Боюсь у него спринга нет и не будет. Раз он столько про бд пишет.
Все верно!
Ну придется посмотреть в на спринг
...
Рейтинг: 0 / 0
08.07.2019, 10:55
    #39834907
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMVPetroNotC Sharpchpasha,
Боюсь у него спринга нет и не будет. Раз он столько про бд пишет.
Все верно!
Ну придется посмотреть в на спрингхммм. И как андроид программисты бэк без спринга пишут?
Тут главное кто одеяло на себя перетянет). Бэк или фронт.
...
Рейтинг: 0 / 0
08.07.2019, 12:55
    #39834947
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
PetroNotC SharpAndronovMVпропущено...

Все верно!
Ну придется посмотреть в на спрингхммм. И как андроид программисты бэк без спринга пишут?
Тут главное кто одеяло на себя перетянет). Бэк или фронт.
а зачем тебе бэк писать? бэк в принципе можно писать на чем угодно ))
...
Рейтинг: 0 / 0
08.07.2019, 13:04
    #39834950
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
AndronovMV Любой кто имеет доступ к таблице пользователей, может посмотреть его токен и сделать запрос по него на приватные данные.
Любому, у которого есть доступ в базу, проще сразу посмотреть приватные данные, а не заморачиваться с токенами!
...
Рейтинг: 0 / 0
08.07.2019, 13:34
    #39834960
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
andreykaTа зачем тебе бэк писать? бэк в принципе можно писать на чем угодно ))не понял вопрс. Автор спросил как делать рест в топике java. Можно и пыхе. Тогда что за вопрос)
...
Рейтинг: 0 / 0
08.07.2019, 13:36
    #39834961
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
SQL2008,
+1
Автор проблемами не делится. Хочет спринг изучать - удачи ему.
...
Рейтинг: 0 / 0
08.07.2019, 13:44
    #39834964
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация в REST
andreykaT,
Если в обычном hello world отдавать по аннотации или просто в сервлете json, то мы получаем REST API с некоторыми оговорками.
Поэтому я лично вообще не вижу что там у автора "не работает".
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Авторизация в REST / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]