actionscript-3 - 从 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。
但是当我将我的代码集成到真实系统时,站点管理员响应登录失败。我不知道两个应用程序之间有什么不同。请分享您的建议。
解决方案
推荐阅读
- json - json 到 json 的 Jolt 转换删除键值并添加拆分字符串值
- javascript - 接受来自扩展 google chrome 的消息以注入脚本
- html - webpack netlify 部署错误,ModuleNotFoundError,有什么建议吗?
- amazon-web-services - AWS EKS 如何跨地域实现容灾?
- command-line - 有没有办法跳过macos bigsur的初始设置?
- python - 如何使用乳胶和 f-String 格式在图形中注释数学方程
- c# - 安全访问将被另一个进程访问的文件
- qt - 如何访问 NodeInstantiator Delegate 里面的组件?
- javascript - 从 JS 到 PHP 的 AJAX POST 是空的
- docker - 使用 Dockerfile 从 .env 环境文件中的变量定义变量