【问题标题】:Help with Spring authentication from a Flex app来自 Flex 应用程序的 Spring 身份验证帮助
【发布时间】:2011-02-04 18:38:30
【问题描述】:

一些背景知识:我在 HTML 页面中嵌入了一个 Flex 应用程序,并且正在使用 Flex 向我的 Java 后端发送一个 soap 请求,该后端根据在 Flex 表单中输入的用户名和密码进行一些身份验证。如果我输入正确的登录名,一切正常,Flex 应用程序可以继续发出进一步的请求。但是如果用户名/密码不正确,我的浏览器中会弹出一个“需要身份验证”对话框,并且我的 Flex 应用程序不会使用正确的处理程序响应,直到我单击取消。我想以某种方式摆脱对话框,但我是 Spring Security 的新手。

【问题讨论】:

  • 嗯,看起来问题可能在于 Flash 运行时不知道如何处理 401 代码以及浏览器取代了插件。

标签: java apache-flex soap spring-security


【解决方案1】:

如果您正在滚动自己的身份验证(即不是 HTTP 身份验证,而是使用用户名和密码的 SOAP 调用),您可以在 Spring 上下文中实现 HandlerExceptionResolver 以解决 Spring Security 抛出的 AccessDeniedException 并正确返回 SoapFault(a呈现带有错误的 SOAP 信封的 ModelAndView)。根据浏览器的不同,您可能只能发送结果代码为 200 的响应(这可以由 View 完成),否则 Flex 不会得到它(大多数浏览器会吃掉 HTTP 正文并且不会将其传递给flash 插件)。

参考:

【讨论】:

  • 我试图实现这一点,但无法完全弄清楚如何用发音来做到这一点。但是,我发现了一个快速破解方法。合并到我的 web.xml 文件中: 401/bad.html 文件不' t 实际存在;这使得它会引发一个 404 not found 错误,浏览器不会因此而崩溃。
【解决方案2】:

好吧,您应该通过 Javascript 处理来自服务器的身份验证响应。可以使您的 flex 应用程序的某些方法可以被 Page 的 Javascript 调用。因此,在您的“处理程序”方法中,您只需将您的身份验证响应传递给该方法,就是这样。

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多