当前位置: 首页 > 面试题库 >

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

何海
2023-03-14
问题内容

我正在使用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),如果那样的话……谢谢!

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


问题答案:

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上对基本页面登录所做的一样。免责声明。



 类似资料:
  • 出于学习目的,我正在使用OAuth2开发一个REST API Angular 4应用程序。 有些受保护的endpoint只能由经过身份验证的用户调用。让我们以更新用户配置文件的endpoint为例: /users/{user_id} 登录用户将能够通过转到更新配置文件屏幕来更新自己的配置文件,该屏幕在后台将调用 /users/{user_id}发送带有新信息和访问令牌的有效载荷。 我们如何防止恶意

  • 6xx受保护 600 Series,Repliesregardingconfidentialityandintegrity 631 Integrityprotectedreply. 632 Confidentialityandintegrityprotectedreply. 633 Confidentialityprotectedreply.

  • 本文向大家介绍如何使用SpringSecurity保护程序安全,包括了如何使用SpringSecurity保护程序安全的使用技巧和注意事项,需要的朋友参考一下 首先,引入依赖: 引入此依赖之后,你的web程序将拥有以下功能: 所有请求路径都需要认证 不需要特定的角色和权限 没有登录页面,使用HTTP基本身份认证 只有一个用户,名称为user 配置SpringSecurity springsecur

  • 在< code>/users下,我有一些需要身份验证令牌的路由,还有一些不需要。为了实现这一点,我做了以下工作。 然后我按照以下方式安装这些路线。 当我向< code>/users发送POST时,它运行预期的路径,但是当< code>next()被调用时,< code > protected _ middleware 运行。这是因为它在标有“D”的行中找到了下一个< code>/users定义。

  • 问题内容: 我正在尝试连接到受密码保护且URL为https的Web服务。在脚本发出请求之前,我不知道如何进行身份验证。似乎在我定义服务后便发出了请求。例如,如果我输入: 然后转到浏览器上的站点,我得到: 如果尝试将服务定义为Soap Server,例如: 我得到: 我还没有尝试发送原始请求信封来查看服务器返回的内容,但这可能是一种解决方法。但是我希望有人能告诉我如何使用php内置类进行设置。我尝试

  • 我正在尝试使用SAML保护资源。有三个参与者在起作用:身份提供者(IDP,在我的控制范围之外)、服务提供者(SP,我碰巧在使用spring security saml,但这个问题并不特定于此),以及受保护的资源(PR,SP之外服务中的某个受保护endpoint)。 我需要支持两种场景: 用户第一次尝试访问PR,没有任何会话 对于场景1应该如何工作,有足够的指导,因为根据我所看到的,这是使用SAML