Защита веб-сервиса REST в GlassFish - PullRequest
0 голосов
/ 27 декабря 2010

все.У меня проблема с защитой моего веб-сервиса REST.Это часть веб-приложения Java EE.Для защиты страниц я использовал тэг login-config и настроил аутентификацию «FORM».Теперь я не знаю, как защитить веб-сервисы, потому что «FORM» не подходит для этого, и я не могу иметь два тега login-config для приложения.Я подумывал разбить на 2 приложения, но не думаю, что это хорошая идея.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2011

Для REST API довольно свойственно иметь отдельный подпуть - таким образом, вы можете указать ограничение аутентификации только для URL, специфичного для вашего приложения, и для URI, соответствующих вашему REST API, реализовать аутентификацию, используя фильтр OAuth-джерси или что-то в этом роде. еще.

Если все ваше приложение написано на Джерси, и вы хотите предоставить одинаковые URI для клиентов REST, а также для браузера (и различать только на основе запрошенного типа мультимедиа), у вас может быть URL-адрес для входа ( для отображения страницы входа в систему) и только то, что вы можете защитить с помощью аутентификации FORM. Затем снова добавьте фильтр OAuth Jersey (или другой фильтр авторизации), который не будет активирован, если в запросе не будет заголовка OAuth, и другой фильтр, в котором вы будете проверять, является ли ContainerRequest.getUserPrincipal () нулевым. Если это значение равно null, вы можете вернуть Response.seeOther(UriBuilder.fromPath("/login").queryParam("redirect", request.getAbsolutePath()).build()).build() - это перенаправит на вход в систему (для oauth это не сработает, поскольку либо запрос oauth будет выполнен успешно, либо предыдущий фильтр не выполнится и вернет коды состояния Unauthorized или Bad Request) , В ресурсе входа в систему вы можете использовать параметр запроса перенаправления, чтобы перенаправить обратно на исходную страницу после успешного входа в систему.

0 голосов
/ 28 декабря 2010

Здесь содержится информация о том, как создавать защищенные веб-службы с помощью NetBeans: http://netbeans.org/kb/docs/websvc/wsit.html

Многие поставщики веб-служб используют ключ API для проверки подлинности доступа к службе.Возможно, вы захотите сделать что-то подобное для вашего обслуживания.

...