2011-01-28 94 views
3

嘿所有, 我正在使用Tomcat 6.0.14,想知道實現一個系統,可以讓我們向用戶發送鏈接說mysite.com?token=12345678912334333(長串繼續)但是這將允許用戶自動登錄。使用Tomcat實現自定義身份驗證

回答

3

除非有特定的到Tomcat等原因,或您無法修改您的Web應用程序,那麼它可能是最容易使用的自定義過濾器做認證(JAAS或其他)。例如:

使用自定義過濾器,你可以在你在一個相對簡單的方式想的任何方式進行身份驗證。

public void doFilter(ServletRequest request, 
        ServletResponse response, 
        FilterChain chain) 
    throws IOException, ServletException { 

    String token = request.getParameter("token"); 
    if (token != null) { 
     doAuthentication(token); 
    } 

    chain.doFilter(request, wrapper); 
} 

您標記爲JAAS。這不僅僅是用一個簡單的標記進行身份驗證,但如果這就是你正在尋找的東西,你是否熟悉Tomcat的JAASRealm?您只需編寫自己的LoginModule來驗證令牌。

它可能不用說,通過E-mail使用基於令牌登錄本質上是不安全的,因此不適合所有類型的應用。

+0

其實我一直在尋找在JAASRealm,但我是不知道如何設置request.getRemoteUser。看起來這個Securityfilter.org解決方案有一些如何。我可以很容易地將我們的網站身份驗證更改爲使用request.getPrincipal。只是想知道是否有一個簡單的方法來編寫request.getRemoteUser()我猜 – 2011-01-28 22:04:21

0

我想你必須自己實現邏輯,即該鏈接將用戶引導到一個servlet或類似的能識別該鏈接,與用戶加入它的東西,創建一個會話對象和用戶重定向到您的應用程序中。

希望這有助於