2010-11-04 92 views
3

我正在嘗試爲liferay創建自定義登錄portlet,因爲我還需要執行其他一些操作,例如日誌記錄。然而,我偶然發現的問題是,portal-impl.jar似乎被屏蔽掉了,所以我不能使用loginutil類。 現在我不想修改實際登錄的工作方式,所以這很糟糕。 我讀過一些關於能夠使用類似ext的東西(解釋非常模糊),但看起來並不像最乾淨的解決方案。liferay以編程方式登錄

我在開發portlet方面有一些經驗,但我是在爲liferay開發的新手。

回答

2

創建一個「ext插件」,因爲它被稱爲是解決您的問題的最佳方法。 This part的文檔應該是您的第一步。

首先,您應該在portal.properties中標識要修改的屬性:是管道中的另一個自動登錄項還是由登錄操作觸發的操作。我經常使用第一個用於自定義SSO操作,而後者用於審計目的。

然後用您的自定義類創建一個ext插件(​​例如,擴展loginutil)並創建嵌入引用它所需的portal-ext.properties。

這樣,你應該可以有一個乾淨的包來部署和取消部署;自定義登錄portlet的jsps也可以完成。

Arnaud

+0

你好,當我回家時我會試試這個。這對我來說似乎有點奇怪,儘管當你甚至不想修改他們的某個類(只想訪問LoginUtil類)時,它必須使用這種方法。關閉portal-impl.jar的原因讓我感到有些不解。 – jack 2010-11-04 12:37:46

+0

portal-impl.jar僅包含內部實現細節 - 沒有API承諾,這意味着實現可以在沒有通知的情況下更改。你不想依賴這個來做特定的事情,並且想要驗證它仍然做你認爲它應該在更新後應該做的事情。 – 2010-11-09 06:11:14

1

爲什麼要使用LoginUtil類?

如果你真的只想添加登錄到登錄,你可以創建一個登錄後掛鉤。該鉤子將攔截每個用戶登錄,以便您可以執行自定義邏輯,例如添加用戶信息的某些日誌記錄。

這種方法的優點是您的代碼與Liferay完全分離。

+0

因爲我將使用令牌服務對用戶進行身份驗證,但我仍然希望將它們登錄到門戶上。 – jack 2010-11-05 07:32:53