2016-10-22 5 views
0

я прочитал о рамках джерси для обслуживания отдыха на этой странице http://howtodoinjava.com/jersey/jersey-restful-client-api-authentication-example/|Джерси остальные рамки - разрешение - некоторые сомнения

И я не понимаю одну вещь. Например, когда мы имеем

@Path("/users") 
    public class JerseyService 
    { 
    @RolesAllowed("USER") 
    public String doLogin(@QueryParam("username") String uname, 
    @QueryParam("password") String result) 

Это означает, что пользователь с пользователем роли может изменять (с помощью этого метода) ВСЕХ пользователей? Не только сам в базе данных? Я пишу приложение для Android, и я могу представить себе ситуацию, когда кто-то использует, например, Advanced REST-клиент. Он регистрируется в сервисе и соответствующим образом модифицирует запросы и сильно блокирует мою базу данных. Например, напишите некоторые моменты другому пользователю или что-то подобное. Как я могу закрыть эту ситуацию?

ответ

1

Джерси (и аналогичная весенняя безопасность) действуют на типы и роли ресурсов.

Итак, если вы разрешаете Роль «ПОЛЬЗОВАТЕЛЬ» работать на ресурсе «Пользователи», вы не можете блокировать конкретного пользователя от редактирования других пользователей только с помощью Джерси.

Что вы можете сделать, это использовать SecurityContext для получения текущего пользователя и блокировать опасные операции, если его учетные данные отличаются от измененных пользователем.

Вот хороший пример на SecurityContext:
https://simplapi.wordpress.com/2015/09/19/jersey-jax-rs-securitycontext-in-action/

+0

Спасибо за ваш ответ. Кажется, это очень хорошо. Правильно ли использовать его с родным мобильным приложением на Android-платформе? ;) Я читал о oauth2 и думаю об использовании одного из этих решений. – sebaaastian

+0

Просто убедитесь, что вы пишете клиент Android, который будет общаться с сервером Джерси, не так ли? –

+0

Справа. Я планирую приложение, выбираю appriopriate технологии. Это мое первое приложение. Итак, подведем итог - я делаю подготовку и не все определяется. Сначала я думал о весне, а не о джерси. – sebaaastian

0

Если у вас есть подробности о том, что пользователь может получить доступ, что Apis в дб использовать фильтр для фильтрации запросов и цепочки каждого запроса, который соответствует с соответствующими учетными данными и отправить код состояния, который вы хотите запросить другим запросам

Смежные вопросы