2011-02-04 63 views
0

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

+0

嗯,看起来问题可能在于Flash运行时不知道如何处理401代码并且浏览器取代插件。 – Kevin 2011-02-04 01:19:28

回答

0

如果您正在使用自己的身份验证(即不是HTTP身份验证,而是使用用户名和密码进行SOAP调用),则可以在Spring上下文中实现HandlerExceptionResolver,以解决Spring Security引发的AccessDeniedException并正确返回SoapFault一个ModelAndView,用于呈现包含故障的SOAP信封)。根据浏览器的不同,您可能只能发送结果代码为200的响应(这可以通过View完成),否则Flex将无法获得它(大多数浏览器都会使用HTTP主体,并且不会将它传递给Flash插件)。

参考:

+0

我试图实现这一点,但不能完全弄清楚如何与发音做到这一点。但是,我发现了一个快速入侵。合并到我的web.xml文件: /bad.html 这是非常重要的文件,实际上并不存在;这使得它引发了一个404未找到的错误,而浏览器并没有发现这个错误。 – Kevin 2011-02-07 12:49:10

0

好,你应该处理由javascript中服务器的认证响应。您可以使用Page的Javascript来调用Flex应用程序的某些方法。因此,在您的'处理程序'方法中,您只需将身份验证响应传递给该方法,就是这样。

相关问题