2015-12-23 4 views
2

Я разработал базовый Restful Webservice в eclipse с помощью maven. Я использую tomcat 7.0 в качестве сервера, SE 1.7 и трикотажа в качестве источника JAX-RS, но я не использую JPA. У меня есть база данных MySql, и я подключаюсь к БД с помощью Connector J, предоставленного MySql. У меня есть таблица сотрудников и таблица депарафинов в моей базе данных и подходящие классы моделей для этих таблиц. Мой веб-сервис предоставляет только методы get-methods, которые возвращают сотрудников и информацию об отмене в формате JSON.Аутентификация и авторизация на простом обслуживании webservice

Работает отлично, но теперь я хочу, чтобы клиент входил в систему, прежде чем получить доступ к методам webservice.

Клиент не настроен, но это должен быть веб-сайт, на моем сервере tomcat, который использует javascript и JQuery для взаимодействия с веб-сервисом.

Теперь я хочу добавить службу проверки подлинности и авторизации в свой веб-сервис. Это должно проверить, если пользователь вошел в систему, и у него есть разрешения на запрос определенного сотрудника или отдела. К примеру один из моих GET-методов:

@GET 
@Path("/employee/{id}") 
@Produces(MediaType.APPLICATION_JSON) 
public Employee getEmployee(@PathParam("id") long id) { 
    return EmployeeDBService.getDefinedEmployee(id); 
} 

и теперь он называется клиентом с ServerURL/myresource/сотрудник/10 но пользователь регистрируется в клиенте не имеет разрешения попросить сотрудник с идентификатором 10.

Я также хочу добавить функцию, которая выведет клиента после того, как он неактивен.

Я уже искал хороший учебник и технологию для внедрения службы проверки подлинности и авторизации в webservice. Но я не был действительно успешным, потому что:

  • Я новичок в разработке Java-сервисов.
  • И я нашел только примеры, реализованные в веб-сервисе SOAP, и никогда не читал что-то о автоматическом выходе из системы после некоторого времени бездействия.

Кто-нибудь из вас знает хорошие ссылки/примеры/технологии, как решить мою проблему?

Если у вас возникнут вопросы, я отвечу на них. Спасибо за вашу помощь и время!

+1

Задать вопрос за пределами ресурсов сайта отключено. Я хотел бы спросить, как добиться того, чего вам нужно достичь, а не просить ссылки/инструменты/код. И имейте в виду, что это непростая тема, если вы ищете простые ответы - их нет. Безопасность - это, конечно, стандартная часть технологического стека. Так как это Джерси, у нее есть хорошее руководство пользователя с хорошей главой по безопасности. https://jersey.java.net/documentation/latest/security.html. Но в этой главе предполагается, что вы знаете все аспекты безопасности JavaEE.(edit: извините, вы упомянули о Джерси) – Gimby

+0

«И имейте в виду, что это непростая тема, если вы ищете простые ответы - их нет. Безопасность - это, конечно, стандартная часть технологического стека« Именно это мой проблема. Я изучаю, как развивать спокойный вебсервис с нескольких дней, но я не нашел источника, который бы сочетал знания, которые мне действительно нужны, чтобы решить данную проблему. Все это часть проекта, который я должен передать примерно через 2 месяца, и я не хочу делать все на прошлой неделе ........ Но мой поиск действительно хорошего источника все еще не был успешным , Я только учился Java год назад ...... Но спасибо за помощь. –

ответ

1

В комментариях security chapter in the Jersey documentation покажет вам, как интегрировать механизм аутентификации в API REST: эта часть проверки подлинности проверяет только, зарегистрирован ли пользователь и кто он.

пользователь регистрируется в клиенте не имеет разрешения попросить работника с идентификатором 10

JAX/RS ничего не знает о вашей модели данных и их привилегии не знаю. Но он даст вам свой логин. Вы должны реализовать свою логику самостоятельно. Вероятно, это будет первая строка каждого из ваших методов REST.

+0

Это означает, например, что я подключаюсь к своей БД, где я сохранил имена пользователей, пароли и их пропуски, и проверьте, не было ли у пользователя, зарегистрированного пользователя, права на этот вызов? –

+0

Точно. Или: SecurityContext также может предоставить вам роли, которые являются ролями пользователя (SecurityContext.isUserInRole). Если число сотрудников невелико, вы можете использовать роль для каждого сотрудника. –

+0

Хорошо, спасибо вам за помощь Эммануэль Келлер, я думаю, это должно мне помочь. –

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