Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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
Java 发送HTTP POST请求_Java_Http_Post_Jakarta Ee_Request - Fatal编程技术网

Java 发送HTTP POST请求

Java 发送HTTP POST请求,java,http,post,jakarta-ee,request,Java,Http,Post,Jakarta Ee,Request,为了实现单次注销,我希望用户在每次单击应用程序A上的注销时都能从应用程序B中注销。是否可以使用某种形式的对应用程序B的POST请求来实现这一点?i、 e.当用户单击注销时: 生成注销应用程序A的现有POST请求 生成额外的POST请求以注销应用程序B 是的,您如何做取决于您使用的编程语言 例如,在ASP.Net下,您可以在处理应用程序A的注销事件时使用System.Net.HttpWebRequest向应用程序B发出注销请求 如果您可以发布您使用的语言,我可以给出一个适当的示例,具体取决于您的身

为了实现单次注销,我希望用户在每次单击应用程序A上的注销时都能从应用程序B中注销。是否可以使用某种形式的对应用程序B的POST请求来实现这一点?i、 e.当用户单击注销时:

  • 生成注销应用程序A的现有POST请求
  • 生成额外的POST请求以注销应用程序B

  • 是的,您如何做取决于您使用的编程语言

    例如,在ASP.Net下,您可以在处理应用程序A的注销事件时使用System.Net.HttpWebRequest向应用程序B发出注销请求


    如果您可以发布您使用的语言,我可以给出一个适当的示例,具体取决于您的身份验证系统的实现,可能您可以/需要使用JavaScript而不是从服务器端发送帖子。

    如果没有具体的信息,很难给出具体的答案,但是当您参考post时,我假设涉及到一个浏览器

    提交表单时会出现帖子(不使用Javascript或类似内容)。由于表单只能有一个操作,因此它只能针对一个服务器端页面

    一种解决方案是,一旦收到一个操作,就让应用程序A将注销凭证转发给应用程序B,这样就有更多的机会来检查返回


    但是,如果您设置了发布到不同页面,请参阅本教程,了解一个与iframe相关的hack-

    最干净的方法是检查您的SSO提供程序是否具有单一签准功能

    对其进行编码并进行部署会使您的总体it解决方案有点脆弱


    另一个建议是与您的(企业)架构师讨论这一点,因为SSO通常是一项企业计划,并在本文中向她指出(非常有说服力的)论点:

    如果您的登录会话由cookie存储,并且您无需提供任何其他信息即可注销应用程序B,清除javascript中的cookie通常会破坏会话并注销用户。

    将其设置为基于cookie的身份验证如何?同一个cookie针对不同的应用程序(在您的案例中为2个不同的应用程序)对用户进行身份验证。一旦用户从一个应用程序(应用程序A)注销,cookie将失效(截止日期),因此每当用户向应用程序(应用程序B)的其余部分发送POST请求时,该请求都不会被处理。每个应用程序都需要一个Servlet来跟踪每个POST请求以验证cookie。

    您需要更清楚。也就是说,你用哪种语言编程。这是一个J2EE应用程序。Java语言通常是一种我不熟悉的语言,当应用程序a将请求转发给应用程序B时,其他人必须提供一个示例,我们是否会显示应用程序B的注销页面?这意味着当用户在应用程序A上单击注销时,我们会向他显示应用程序B的注销页面。不,您只在后端执行此操作,并且只向用户发送您的原始注销页面。实际上,应用程序A将充当与应用程序B交互的用户(假设成功,则不返回任何内容,如果应用程序失败,则返回“错误注销”)。Ajax被排除在外,因为它是跨域的。您需要cookie或类似的东西吗?HTTPClient可能会提供任何缺少的内容。已解决此问题-引入令牌(会话创建时间)并在应用程序中缓存此令牌。如果请求是通过“后退”按钮发出的,则会引入一个检查,以查看此令牌是否已在应用程序中缓存/存档。若令牌被存档,用户将被重新定向到会话超时页面。