2013-03-31 169 views
1

我是Liferay中的新成員。 我想使用Liferay作爲我的後端,並且我有幾個Web服務與它進行交互。 我在哪裏可以找到文檔(或一些示例)來提供Web服務以用於身份驗證liferay用戶? 這只是爲了開始並熟悉儀器。然後,我必須在此Web服務中集成單一登錄系統。 在此先感謝Liferay認證web服務

回答

0

我相信developer's guide的章節11和12可能包含一些有價值的信息。關於登錄 - 而且正如你已經提到的SSO - 我建議認證到一個共同的後端,而不是直接給Liferay。 Liferay支持一些開箱即用的SSO系統。 Liferay的Web服務是通過ServiceBuilder生成的(也閱讀該章節),並且您可以通過它們的名稱來識別它們 - 例如UserService是處理用戶管理的遠程服務(UserLocalService是不可遠程訪問的,Servicebuilder文檔將教你關於這些名稱的各種後綴,如* Util,* Impl等)。

此外,我從來沒有完全確定哪個Webservice正在使用什麼基礎架構:如果您在使用外部Web服務的Liferay中編寫portlet,那麼與編寫將某些操作委託給Liferay的Webservices的Web服務是完全不同的故事。兩者都是可能的(當然),但要求一種不同的方法:您必須使Liferay的服務可用(通過配置,默認情況下它們僅可用於127.0.0.1),但您可以使用任何您喜歡的WebService你的插件,沒有Liferay有任何話要說。

只有當你想在市場上發佈你的插件時,你需要聲明你想要連接的位置 - 因此你需要在這種情況下閱讀PACL。

0

您可以通過網站服務的步驟教程找到步驟。 http://www.liferaysavvy.com/2014/05/consuming-liferay-json-web-services.html

您可以在下面的Java腳本的幫助下使用身份驗證來調用Web服務。

<script> 
$(document).on('ready',function(){ 
      var username ="[email protected]"; 
      var password ="test"; 
      function make_base_auth(user, password) { 
       var tok = user + ':' + password; 
       var hash = btoa(tok); 
       return "Basic " + hash; 
      } 
       $.ajax({ 
        url: 'http://localhost:8080/api/jsonws/CustomJsonWebservices-portlet.employee/get-employee/emplyee-id/1', 
        dataType: "json", 
        type: "get", 
        success: function(data){ 
          alert('Employee Data with Id 1 is');  
          alert(data.emplyeeName); 
          alert(data.employeeDesignation); 
        }, 
        beforeSend: function(xhr){ 
          xhr.setRequestHeader('Authorization',make_base_auth(username, password)); 
            }, 
            complete: function(){ 
            }, 
        error: function(){ 
        } 
       }); 

}); 
</script> 

您可以在下面找到關於Web服務的完整代碼。 https://drive.google.com/file/d/0B9B1NsG0lyx6Q2dlUVp6LU5fX0E/view?usp=sharing