因此,我们在 JBOSS 服务器实例中托管了三个 FLEX 控件,以及一个 IIS (MVC) 应用程序,该应用程序的页面具有对象(和嵌入)标签来呈现控件。我们希望在托管其他服务(Solr、一些自定义 web 服务和 tika)的 jboss 服务器上设置 HTTP 基本身份验证,并且已经弄清楚如何传递凭据。
如何将这些基本的 http 身份验证凭据发送到对象/嵌入标签中的 flex 控件?
因此,我们在 JBOSS 服务器实例中托管了三个 FLEX 控件,以及一个 IIS (MVC) 应用程序,该应用程序的页面具有对象(和嵌入)标签来呈现控件。我们希望在托管其他服务(Solr、一些自定义 web 服务和 tika)的 jboss 服务器上设置 HTTP 基本身份验证,并且已经弄清楚如何传递凭据。
如何将这些基本的 http 身份验证凭据发送到对象/嵌入标签中的 flex 控件?
请充分注意,此选项非常不安全,因为仅查看 HTML 源代码就会显示用户的凭据。
第一步
如果您想要在开发期间将凭据(demouser/demouser)传递给在 object/embed 标记内声明的 Flash 控件,您可以修改 noscript 部分以及在html-template/index中使用 JavaScript 传递 Flash 变量的其他几个地方您的 Flex 构建器项目中的.template.html文件 -
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="${application}" width="${width}" height="${height}"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="${swf}.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="${bgcolor}" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="http_user" value="demouser" />
<param name="http_password" value="demouser" />
<embed src="${swf}.swf" quality="high" bgcolor="${bgcolor}"
width="${width}" height="${height}" name="${application}" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
flashVars="http_user=demouser&http_password=demouser"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
部署时,您需要包装生成的 HTML 包装文件(通常在 JSP 页面的bin-debug/文件夹中,并使用 scriptlet 或 JSTL 标记逐个用户写出凭据)。例如,
flashVars="http_user=demouser&http_password=demouser"
会成为
flashVars="http_user=<%=username%>&http_password=<%=password%>"
第二步
在您的 Flex 代码中,通过以下方式检索用户名和密码:
import mx.core.Application;
var username:String = Application.application.parameters["http_user"];
var password:String = Application.application.parameters["http_password"];