Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets HttpServletResponse:保留、保存或持久化响应以供以后使用。。。?_Servlets_Spring Mvc_Openid - Fatal编程技术网

Servlets HttpServletResponse:保留、保存或持久化响应以供以后使用。。。?

Servlets HttpServletResponse:保留、保存或持久化响应以供以后使用。。。?,servlets,spring-mvc,openid,Servlets,Spring Mvc,Openid,我正在使用Spring创建我的webapp。我有这样一个场景: ExternalService向我的控制器发送一个GET请求,该控制器具有映射/DoOperation,其中一些用户信息作为参数。我获取参数检查用户是否登录到我的系统,如果没有,我将他发送到OpenId验证returnUrl,该验证与returnUrl在同一个webapp中,比如说/Authenticated ExternalService不提供returnUrl(与OpenIdreturnUrl无关),并强制响应它在/DoOper

我正在使用Spring创建我的webapp。我有这样一个场景:

ExternalService
向我的
控制器发送一个
GET
请求,该控制器具有映射
/DoOperation
,其中一些用户信息作为参数。我获取参数检查用户是否登录到我的系统,如果没有,我将他发送到
OpenId
验证
returnUrl
,该验证与
returnUrl
在同一个webapp中,比如说
/Authenticated

ExternalService不提供
returnUrl
(与
OpenId
returnUrl无关),并强制响应它在
/DoOperation
上发出的相同请求

现在,我怎样才能保留这个
HttpServletResponse
(如果有办法的话,显然没有办法),这样我就可以在去了其他地方后编写一个响应,例如在
OpenID
页面验证用户,然后在这种情况下进行
/Authenticate
。。。这样
ExternalService
就可以读取它了


Servlet过滤器在这里能帮上忙吗

我不相信您可以保留相同的HttpServletResponse accross请求。这不是servlet的工作方式。您需要做的是使用一些异步请求来做您需要的事情。不过,我不知道为什么您要在没有经过身份验证的用户的情况下执行/o操作。看起来有点不安全。我知道。但我在想是否有办法做到这一点。。。实际上,webapp进一步连接到Domino,这需要Domino用户会话来执行操作,否则将不安全。。无论如何,这样做的方法是将过程分为两部分。第一部分是操作请求。第二部分是从操作中获得结果。然后可以启动该过程,并异步获得结果。但是,我对其不安全的评论是,似乎您允许任何人在获得身份验证之前启动/停止操作。如果是这种情况,是什么阻止某人在没有真正验证的情况下反复调用/DoOperation来拒绝您的应用程序?抱歉,忽略了评论的这一部分。webapp+Domino的内容对用户隐藏,用户被ExternalService为其提供一切服务,而ExternalService无法发送凭证在我们的系统上验证用户。ExternalService就像野战医院一样,但从webapp获取内容。。。用户将被授权使用ExternalService而不是我们。。。我希望它也能为我们授权……在我尝试进行OAuth黑客攻击之前,我会研究一下SSO解决方案。如果这确实是一个服务调用,那么调用的客户端就没有理由不能将凭据与请求一起发送。