2008-12-17 91 views

回答

1

我們在一個非常複雜的應用程序的Flex中完成所有工作,沒有理由轉移到HTML。由於如果您使用AMF,Flex會將HTTP(無狀態)傳遞給後端,您仍然需要Flex中的會話支持。

1

我接近完成了一個具有Drupal後端的中型flex應用程序。我通過AMFPHP使用RemotObjects與drupal進行所有登錄和驗證例程。我唯一重定向到HTML的是實際的新用戶註冊。但事先知道Drupal,Flex和AMFPHP在一起玩得非常好,這一切都讓決策更容易!

0

在flash中通過http(一個普通的網絡服務器)與服務器通信非常容易。如果你沒有和服務器進行大量的數據交換,AMF可能會過度殺傷,而JSON,XML或你自己的格式就足夠了。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLRequest.html

編輯:我mean't說閃光燈,不能彎曲。

+0

爲什麼AMF「矯枉過正」?你發送一個對象,你得到一個對象,很簡單。在我所見過的所有基準測試中,效率更高,速度更快。 – Mifune 2013-02-06 19:13:40

1

我們在HTML/JavaScript中執行登錄頁面並使用AJAX服務調用。我們永遠不會觸摸我們的Flex .swf代碼,直到用戶成功通過身份驗證。此頁面也是我們驗證Flash播放器是否存在的地方,以及是否有足夠的版本來運行我們的Flex代碼。

在服務器端,我們使用的是Tomcat,BlazeDS和Spring-Framework。我們有Spring控制器,將任何未經身份驗證的訪問嘗試 - BlazeDS遠程調用等 - 轉移到登錄頁面。我們使用Spring安全性來管理身份驗證和用戶角色權限(以前稱爲Acegi安全性,但它已合併爲Spring傘下)。

我們曾嘗試在Flex中做一個登錄頁面,但由於一些奇怪的焦點錯誤而放棄了。我們無法始終將注意力集中在登錄憑證編輯字段中。論壇揭示了首次訪問Flex表單時存在的一個焦點問題。

對於用戶登錄體驗,我們絕對想確保重點表現良好。第一印象是持久的印象。

2

我們做事的方式,是

1)Flex的前端通過遠程對象談論到Java門面上的Web服務器。

爪哇:

public class AdminServer { 
    //injected into contr.. 
    private final LdapService ldapService; 

    public UserDisplay authenticate(String username, String password) { 
    return ldapService.authenticate(username,password); 
    } 
} 

2)LDAP驗證和異常處理

化java然後使得經由委託方法(左出到LDAP服務器的呼叫),則UserDisplay對象是填充並始終返回,狀態代表成功/失敗/異常,以及用戶的身份驗證級別。你可以用你喜歡的方式做到這一點。

3)然後,我們暴露AdminServer中作爲彈簧/配置的柔性目的地爲:


重要的是,目的地= 「AdminServer中」(下面)匹配spring配置中的bean id(上面)。

4)在Flex代碼: ..

5)使用AMFSecureChannel 爲了防止密碼以明文發送從flex-> Java中,你也需要在Flex配置文件中使用AMFSecure通道,方法是將其設置爲默認值。

6)使用LDAP證書和密鑰庫,以確保通訊科Java的> LDAP

的Java的東西應該有LDAP證書用於其加密,這對我們來說意味着配置密鑰庫(請參閱Java密鑰工具),以便進口下列服務器(Tomcat)的上的文件:

  1. 根信任
  2. 簽署我們的密鑰對證書的頂級證書
  3. 我們生成的密鑰對,我們通過(2)發送簽名。

如果不遵守這一命令,你就無法導入公鑰/私鑰

7)的密鑰存儲文件

此文件被放在〜/的.keystore的位置自動被tomcat拾起。您的服務器可能會有所不同。

8)使用Web服務器安全端口 最後,我們不得不取消註釋在server.xml配置Tomcat的HTTPS允許安全通道口上工作8443

然後,我們可以輸入: https://www.oursite.com:8443/ourcontext/login.html

並且一路獲得安全通信。

相關問題