Spring BlazeDS Integration之spring security(1)---flex UI登陆
原创
©著作权归作者所有:来自51CTO博客作者茜茜770的原创作品,请联系作者获取转载授权,否则将追究法律责任
"Spring BlazeDS Integration"集成了spring security功能。
使用场景一:
我们自己用flex UI代码去login:
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