2010-03-31 2 views
3

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

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

шаги, необходимые при вызове метода WebService являются:

  1. вызов Логин (пользователь, PWD), получить сеанс маркера 1,1 помнить маркер
  2. вызов servicemethod (маркер, arg1, arg2 ...)
  3. WebService проверяет, является ли маркер известно, если не бросить исключение в противном случае продолжить
  4. logou t или таймаут после x периодов бездействия

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

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

благодаря!

ответ

1

Это возможно, и я видел веб-службы, используя аналогичный подход. Но я бы не реализовал свое собственное решение. Вместо этого я использовал бы токен безопасности из спецификации WS-Security и, точнее, токен пользователя (вы получаете это от WSIT, который является частью Metro и, таким образом, взаимодействует с клиентами .NET). Посмотрите на this article для введения.

Обновление: Дополнительные указатели:

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

Edit:

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

+0

Я создал службу Java с поддержкой состояния, но когда я использую ее с asp.net, я получаю следующую ошибку: «Это веб-служба с сохранением состояния и {http://jax-ws.dev.java.net/xml/ns /} objectId требуется. " .. есть идеи? – hugri

+0

Спасибо за ссылку, но честно - мне все это выглядит довольно сложно. Есть ли у вас пример использования токена пользователя? И особенно с клиентом ASP.NET? Я действительно застрял, мне кажется, что это не так много людей. – hugri

1

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

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

0

Я думал о том, чтобы опробовать Apache Shiro, я не могу сказать, если он хорош. Выглядит неплохо.

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

  • Нет связанных вопросов^_^