从Android调用受Spring Security保护的REST Web服务

鲍比:

我正在使用Spring Security在Grails应用程序中托管REST Web服务,即:

@Secured(['IS_AUTHENTICATED_REMEMBERED'])
def save = {
    println "Save Ride REST WebMethod called"
}

我是从Android应用程式呼叫它。(调用不安全的服务就可以了。)

为了调用该服务,我正在手动建立一个request(HttpUriRequest)并使用来执行它HttpClient

我想知道最佳实践是什么,以及如何实施它们……具体来说,我应该:

  1. 执行一次登录,以检索JSESSION_ID,然后将包含它的标头添加到每个后续请求的HttpUriRequest中?
  2. 或者(不确定我该怎么做)在cookie /服务器端会话之前,在每个请求中直接包含登录名和密码

我想我可以使选项1正常工作,但是不确定Spring Security是否允许(2),如果那样的话……谢谢!

-而且,我没有任何图书馆可以为我完成所有这些工作?:)

大卫·帕克斯(David Parks):

Spring Security 确实支持基本身份验证和基于表单的身份验证(在URL中包含用户名/密码)。

REST服务通常在每个请求中都通过身份验证,通常不是通过会话进行身份验证。默认的spring安全认证(假设您在3.x上)应查找基本认证参数或表单参数(j_username和j_password)(形式为http://you.com/rest_service?j_username=xyz&j_password=abc)。

手动将j_username / j_password附加到URL上,将它们添加为post参数(我相信),或者设置基本身份验证用户名/密码都可以立即对默认的Spring Security拦截器进行REST服务身份验证。

我承认,我还没有在REST服务上尝试过此方法,尽管我确实清楚地记得在文档中准确地阅读了此内容,就像我最近在Spring Security上对基本页面登录所做的一样。免责声明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章