2012-05-06 21 views
0

我的問題很奇怪,我不完全確定它是否可以完成。我在Liferay中使用Spring MVC,並試圖實現以下功能。 我正在做的應用程序有兩個域兩個門戶網站將在兩個不同的網址。我需要用戶在第一個門戶上登錄並驗證其憑據後,才能將其重定向到具有相同門戶網站的特定頁面,並在新選項卡中打開其他門戶網站的登錄頁面。如何在用戶使用Liferay portlet中的Spring MVC登錄頁面後創建兩個重定向

我試圖通過以下方式實現此目的。由於我不能有兩個響應單一的登錄功能,我嘗試過,一旦他被重新使用liferay hook函數重新登錄後登錄重定向操作。

這將我帶到第一個門戶的登錄頁面。在同一個重定向操作中,我創建了一個cookie,通知我用戶已經在這裏。

@Override 
public void run(HttpServletRequest request, HttpServletResponse response) 
     throws ActionException { 

    try { 
     Cookie loginCookie = new Cookie("loged_in_confirmed","1"); 
     response.addCookie(loginCookie); 

     response.sendRedirect("somePage"); 

    } catch (Exception e) { 
     //TODO 
    } 

在重定向帶我到的頁面上,我有一個檢查cookie的jQuery文檔準備好函數。如果cookie在那裏,它會刪除它,並且它應該將我重新設置到新選項卡中的其他門戶。

但是,新選項卡的打開始終被彈出窗口阻止程序阻止。我已經嘗試用window.href,window.open打開目標空白,我甚至嘗試添加一個隱藏的鏈接target ="_blank",但彈出窗口阻止程序仍然得到他。我對任何消化開放,我是否在以某種方式錯過了某些東西,或許我完全是在這裏的目標,並有完全不同的方式來做到這一點?

回答

0

彈出式窗口攔截器會查看該窗口是否由於用戶操作而打開。實際上,這意味着window.open和其他窗口打開程序將查看調用堆棧以查看您是否正在處理輸入事件,並且只允許彈出如果您是。這使我想起兩個選項的方式,以彈出窗口阻止程序是兼容的打開第二頁:

  1. 打開當用戶點擊登錄,將分別登錄到第二站點或輪詢已經頁面彈出進程登錄,然後在登錄失敗時關閉自己。可能最好的方法是設置彈出窗口來加載等待登錄成功或失敗的頁面,然後將重定向返回到第二個門戶或關閉彈出窗口的JS代碼片段。
  2. 在第一個門戶中添加target =「_ blank」的「點擊此處使用第二個門戶」鏈接。這是我會做的,除非在沒有用戶干預的情況下加載這兩個站點是客戶的要求。
+0

感謝您的回答。這是客戶的要求,這就是爲什麼我問。兩個星期前,你的暗示都被考慮在內,客戶拒絕了他們。我認爲他們在網絡上看到類似的東西,但我無法找到自動執行此操作的網站。我的另一個問題是因爲我對這件事沒有最大的經驗。這是否可以在沒有任何客戶交互的情況下完成? –

相關問題