2010-08-27 132 views
0

我有通过BlazeDS连接到tomcat服务器的Flex/AIR应用程序。我没有发现我必须集成一个旧的Web应用程序(struts/jsp),并且我希望除了登录,身份验证和会话处理之外,不要改动这个web应用程序。也是使用httpclient的第三个Java应用程序。将非flex客户端连接到运行blazeDS的服务器

目前我有一些blazeDS远程对象来处理用几个RPC调用登录/注销。接下来,创建并处理FlexSession对象。有没有办法使用httpclient和JavaScript来调用blazeds RPCs,所以我不必重新编码,并有3种不同的方式来处理登录和会话?

这应该为3个应用程序使用single_sign_on。

回答

1

是的,处理一切不同我害怕!

你应该只使用BlazeDS来从AMF中解析Java对象。一旦完成,交给其他人来做你的业务逻辑。这意味着您可以通过为业务逻辑提供API来添加不同的入口点。

从认证/登录类型的东西,你应该使用像spring security这样的事情来处理,而不是写你自己的。这将这种类型的逻辑从业务逻辑和传输机制中分离出来,无论您如何访问应用程序,都可以重复使用。

对于会话,它取决于你正在存储的内容,但使用FlexSession通常不是一个好的计划。

+0

所以你会说改变flex/blazeds的登录/注销部分以使用httpclient和某种类型的后端端点,然后使用blazeDS RPC进行其余部分?这样我可以重新使用httpclient/servlet(或其他)和会话处理其他类型的客户端(浏览器/空气/独立应用程序)? – Nick 2010-08-27 15:44:16

+0

如果您使用Flex ChannelSet的登录方法... http://livedocs.adobe.com/flex/3/langref/mx/messaging/ChannelSet.html#login() 这将最终击中authenticationProvider你设置了Spring安全。所以你可以使用Flex RO的没问题。 如果HTTP客户端使用的是未经身份验证的连接,它们最终会遇到同样的事情。 – 2010-08-27 16:51:20

相关问题