2011-08-25 136 views
5

我跟着this demo使用spring security和openid實現登錄。使用openid spring security登錄時註冊

我成功實現它,但使用Spring Security的我必須提供在spring-security.xml

<security:user name="http://krams915.myopenid.com/" password="" authorities="ROLE_USER, ROLE_ADMIN" /> 

userservice部分我想實現通過OpenID的一次性註冊和登錄週期用戶的詳細信息。我沒有得到如何在用戶服務中提供用戶名的情況下繼續前進,因爲訪問我的網站的用戶以前不會註冊。

任何幫助或指導將是偉大的。

在此先感謝。

回答

6

具有彈簧安全性的openid示例有一些使用attribute-exchange標記從OpenId提供程序提取數據的示例。這將使您可以爲用戶抓取所需的數據(或至少部分數據),特別是當它們進入新環境時。

在該示例中的CustomUserDetailsService也顯示了一種可能的方式,當新用戶通過OpenID,他們的OpenID標識符鏈接到你的應用程序中的一個新的用戶帳戶中來創建應用程序中的新帳戶。

+0

感謝您的回答。但它沒有提供解決方案,它應該如何工作。 [Here](http://blog.solidcraft.eu/2011/04/spring-security-by-example-openid-login.html)是可以正常工作的整個解決方案。 – user549757

+0

@user - 是的,這個例子在嬰兒步驟中通過它,但他們正在做的核心與我鏈接到的Spring Security示例相同。顯然,我只鏈接到說明屬性交換和應用程序本地用戶帳戶創建的特定代碼文件,但鏈接到的演練實際上與彈簧安全示例相同。 – cdeszaq

+0

對於這個openid的東西,它做了詭計,現在我也想整合Facebook,twitter,鏈接登錄與此,這遵循OAuth ..是否有可能整合這兩個?如果是的話,你可以提供任何鏈接或如何完成。?我提到[blogTrickl](http://blog.trickl.com/?tag=spring-social),但這沒有多大幫助。 – user549757