powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Авторизация в REST
22 сообщений из 22, страница 1 из 1
Авторизация в REST
    #39834407
AndronovMV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, коллеги!

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

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

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

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

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

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

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

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

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


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