首页 > 解决方案 > 从 actionscript 到 siteminder SSO 的身份验证问题

问题描述

我正在将 adobe flex 应用程序从 web 版本(在 flash 播放器中运行)迁移到 adobe air 桌面应用程序。我的应用程序通过 URL 上的远程对象(一种方式将 adobe flex 与 java 后端)与“blazeDS 服务”通信:http://myhost.example.com/mycontext/messagebroker/amf 上述 URL 受 CA 站点管理器保护,如果用户尚未登录,系统将重定向到站点管理器登录页面在:http://myhost.example.com/sso/*...

我尝试通过 post man 向 siteMinder 服务发送 post 请求以登录成功。(发布用户名、密码、pin 等。)然后 siteminder 用 cookie 响应。

我的任务是尝试通过操作脚本发送 http 请求以从我的空中应用程序登录。

我在初始化时编写了一个简单的空中应用程序发送请求,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import flash.net.*;
            function init(){
                var req : URLRequest= new URLRequest("http://myhost.example.com/sso/");//The Siteminder service URL.

                var formData : URLVariables = new URLVariables("email=test&uname=1002102571&pass=test&gender=male"); //Post data
                req.data = formData;
                req.contentType = "application/x-www-form-urlencoded";
                req.method = "POST";
                var urlLoader : URLLoader = new URLLoader(req);
                urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onResponse);
                urlLoader.addEventListener(Event.COMPLETE, onComplete);
                urlLoader.load(req);
            }
            function onResponse(event){
                Alert.show("aaa" + event.target);
            }
            function onComplete(event){
                Alert.show("bbb");
            }
            function response(event){
                Alert.show("â0");
            }
            function fault(event){
                Alert.show("nb");
            }
        ]]>
    </mx:Script>
</mx:WindowedApplication>

然后站点管理员响应cookies。

但是当我将我的代码集成到真实系统时,站点管理员响应登录失败。我不知道两个应用程序之间有什么不同。请分享您的建议。

标签: actionscript-3airhttprequestsingle-sign-onsiteminder

解决方案


推荐阅读