Возможно, вы захотите использовать некоторую форму защиты транспортного уровня, такую как SSL, для защиты вашей службы.
Кроме того, REST пытается использовать функции HTTP, чтобы вы могли поместить заголовок авторизации в запрос HTTP.
Редактировать: простой пример
Безопасность транспортного уровня
Перейти к одной из многих компаний, продающих сертификаты SSL, например Verisign.Купить сертификат.Установите его на свой веб-сервер.На вашем веб-сервере будет документация по его установке.
Использование HTTP-авторизации
Получите у клиента вашего веб-сервиса использование BASIC-авторизации (они передаются в виде открытого текста, поэтому вы 'мы должны использовать SSL для того, чтобы это было эффективно).Это включает в себя ввод имени пользователя и пароля, закодированных в BASE64, в Авторизационный заголовок .Напишите код безопасности Filter
и настройте веб-приложение так, чтобы все запросы к службе RESTful передавались через фильтр.Ваш фильтр безопасности должен извлечь имя пользователя и пароль из заголовка авторизации запроса и проверить их.Если учетные данные недействительны, вы отклоняете запрос с кодом состояния 403.Если учетные данные в порядке, просто распространите цепочку фильтров.
public MySecurityFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
//Get the Authorizatiuon header
String auth = ((HttpServletRequest)request).getHeader("Authorization");
//Extract the username and password
if (checkCredentialsOnMyDatabase(credentials[0], credentials[1])) {
chain.doFilter(request, response);
} else {
//Reject the request with status code 403
}
}
}
Также обратите внимание, что если вы используете одну из популярных платформ, таких как Джерси, в нее встроено множество функций безопасности, которые могут помочь вам.