gpt4 book ai didi

java - 从 Android 调用使​​用 Spring Security 保护的 REST Web 服务

转载 作者:IT老高 更新时间:2023-10-28 13:59:00 24 4
gpt4 key购买 nike

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

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

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

为了调用服务,我手动构建了一个请求 (HttpUriRequest) 并使用 HttpClient 执行它。

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

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

我想我可以让选项 1 工作,但不确定 Spring Security 是否允许 (2),如果这是要走的路...谢谢!

--而且,没有任何我想念的图书馆可以为我做这一切,是吗? :)

最佳答案

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

REST 服务通常会在每个请求上进行身份验证,而不是通常通过 session 进行。默认的 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 的基本页面登录所做的一样。免责声明结束。

关于java - 从 Android 调用使​​用 Spring Security 保护的 REST Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com