2011-04-25 73 views
0

我想要實現的情況下,類似於以下一個基於令牌的認證機制:基於令牌的認證6

在谷歌日曆,你可以邀請客人到您的活動,誰又將可以通過電子郵件邀請直接響應這些事件。對這樣的事件的邀請包含各自的鏈接以響應(是,否,也許)與在URL中編碼的認證令牌。這些認證令牌僅限於特定的事件和用戶。

生成這些類型的「一次性」令牌的最佳做法是什麼?只能執行有限的操作並且只能訪問有限的資源(並且可能僅在有限的時間內有效)?我如何在Glassfish中實現這一點?我想通過我的應用程序的RESTful API(使用Jersey)公開這一點。目前,我的應用程序中的所有URL路徑都使用在web.xml中配置的身份驗證約束進行保護。

我的這種方法將是如下:

  1. 提供(例如/ token_auth),其中不施加約束認證的URL,並使用這個令牌認證。
  2. 在Web服務方法中,手動檢查安全令牌並執行所需的操作。令牌與用戶名,截止日期,授權資源等信息一起保存在數據庫中。

我想知道是否有更優雅的解決方案使用任何框架或可以避免的內置容器功能所有的手工工作。而且這個解決方案是否可能有一些安全缺陷。

類似的問題已經被問對SO前:Newbie at JAAS authentication; Sign in using a token in the URL Bar

回答

1

你看着的UUID?我們使用Safehaus UUID

+0

不,我看着它。它優於Java的內置UUID類。效率?我的問題的其餘部分如何,你是否會按照我描述的方式處理問題?你還在工作中使用Glassfish嗎? – Theo 2011-04-26 19:33:31

+0

我個人不知道在默認的java實現中使用Safehaus版本的UUID的原因。如果需要,我可以找出差異。 – hooknc 2011-04-26 19:46:09

+0

一般來說,我會對任何可能允許訪問個人信息(如日曆)的令牌使用令牌進行授權。您是否考慮過生成一個包含事件信息的url,然後讓用戶發送url登錄,而不是僅僅因爲令牌而授予訪問權限?我沒有使用Glassfish或澤西島,但我的猜測是,在這種情況下確實無關緊要。什麼是您使用的安全框架?如果你沒有使用,你可以考慮使用spring security 3. – hooknc 2011-04-26 19:53:01

1

你的方法看起來不錯。我沒有意識到爲你做這種事情的框架。 Spring Security可能有些東西可以使用,但不是全部。

相關問題