"Spring BlazeDS Integration"集成了spring security功能。


使用场景一:

我们自己用flex UI代码去login:


Spring BlazeDS Integration之spring security(1)---flex UI登陆_html


flex的session和登陆的功能一直是令人头疼的问题。对于大多数干html出身的程序员来说,都会想到使用http form表单提交,在java后台实现登陆功能。

但是flex不同于html标记,他有自己的api去实现登陆功能(太多人都不知道呢

):


flex中定义remoteObject:

<fx:Declarations> 
<s:RemoteObject id="securityHelper" destination="securityHelper" fault="faultHandler(event)">
<s:method name="getAuthentication" result="userHandler(event)"/>
</s:RemoteObject>
</fx:Declarations>


其实flex定义的任何一个remoteObject,都可以通过如下api去完成登陆:


private function login():void
{
var token:AsyncToken = securityHelper.channelSet.login(userId.text, password.text);
token.addResponder(
new AsyncResponder(
function(event:ResultEvent, token:Object = null):void{
Alert.show("Login Success");
},
function(event:FaultEvent, token:Object = null):void{
Alert.show(event.fault.faultString, "Login Failed");
}
)
);
}






其关键的flex api就是:remoteObject.channelSet.login(userId.text, password.text);


该方法调用之后,就会调用java端, BlazeDS的 flex.messaging.security.LoginCommand的实现类,得如下方法:

public abstract java.security.Principal doAuthentication(java.lang.String arg0, java.lang.Object arg1);


因为项目使用了Spring BlazeDS Integration,

他自带的实现类,已经实现了flex.messaging.security.LoginCommand

org.springframework.flex.security3.SpringSecurityLoginCommand


所以不需要我们自行编写类去实现。



那么如何配置Spring BlazeDS Integration的spring security呢?

具体请看:http://docs.spring.io/spring-flex/docs/1.5.x/reference/html/#security