2015-01-06 51 views
1

我想允許用戶使用表單或OAuth身份驗證進行登錄。JSF表單身份驗證+ OAuth

對於表單身份驗證,我使用JDBC Realm(運行在glassfish服務器上)並在控制器中執行 HttpServletRequest.login(username, password)

這允許訪問限制在web.xmlsecurity-constraint的頁面。

要允許Facebook登錄我使用socialauth庫。因此,我可以在控制器中看到Facebook用戶的數據,但用戶無法訪問受保護的頁面,因爲我不知道如何執行login(username, password),因爲我顯然沒有用戶密碼。

我該怎麼辦?我是否必須實施自定義領域?

回答

1

我該怎麼辦?我是否必須實施自定義領域?

沒有。只需將其自動註冊爲新用戶即可。

請記住在DB中標記它是否是社交帳戶,並且還請記得事先檢查登錄名(電子郵件地址)是否與社交帳戶相關聯。

+0

好的,但註冊後,我如何使用FB註冊他?我無法做HttpServletRequest.login(...),因爲我沒有密碼。如果我不做登錄,用戶將無法訪問受限制的頁面。 –

+0

只需保持密碼爲空或使用默認值或根據登錄名和鹽生成密碼。有了成功的社交授權,您已經確認它是有效的用戶。也許你現在終於可以更好地理解答案的最後一段。 – BalusC

+0

哦,我知道!我想讓一個用戶同時使用表單登錄和oauth登錄,並沒有想到有單獨的連接用戶。謝謝你的建議。 –