Как обезопасить веб-сервисы Java с помощью входа в систему и обработки сеанса

StackOverflow https://stackoverflow.com/questions/2551191

Вопрос

Я бы хотел защитить свой веб-сервис (Java metro) с помощью логина.

Вот как я планирую это сделать:

Шаги, необходимые при вызове метода webservice, следующие:

  1. вызовите login (user, pwd), получите токен сеанса 1.1 запомните токен
  2. вызовите servicemethod (токен, arg1, arg2...)
  3. веб-сервис проверяет, известен ли токен, если не генерирует исключение, в противном случае продолжайте
  4. выход из системы или тайм-аут после x периодов бездействия

мои вопросы:1.каково ваше мнение о таком подходе?есть ли в этом смысл?2.существуют ли какие-либо библиотеки, которые берут на себя бремя написания обработки сеанса (возможно, с сохранением базы данных, чтобы пережить перезапуск приложения)

(решение должно быть простым и легко использоваться с клиентами Java и .NET)

Спасибо!

Это было полезно?

Решение

Это возможно, и я видел веб-сервисы, использующие аналогичный подход.Но я бы не стал внедрять свое собственное решение.Вместо этого я бы использовал токен безопасности из спецификации WS-Security и, точнее, токен имени пользователя (вы получите это из ВСИТ который является частью Metro и, таким образом, совместим с .СЕТЕВЫЕ клиенты).Взгляните на эта статья для ознакомления.

Обновить: Еще несколько указателей:

Я не могу сказать, что я нашел WS-Security очень удобным, но, тем не менее, мой опыт показывает, что использование WS-Security занимает меньше времени, чем внедрение пользовательского решения, более безопасно и лучше масштабируется (проверка базы данных при каждом вызове требует затрат).

Редактировать:

Исправил первые две ссылки, потому что они были мертвы.Не смог найти ни одного для третьего, но я думаю, что второй должен охватить это.

Другие советы

Не начинайте сразу же внедрять это самостоятельно с нуля.Многие контейнеры J2EE / Java-фреймворки предлагают поддержку входа в систему / контроля доступа.Взгляните на документацию к фреймворку, который вы используете в данный момент.

Другой простой альтернативой является реализация контроля доступа на интерфейсном веб-сервере;например ,Apache HTTPD действует как обратный прокси-сервер для Tomcat.

Я подумывал о том, чтобы попробовать себя Апач Широ, Я действительно не могу сказать, хорошо ли это.Хотя выглядит неплохо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top