一尘不染

使用Tomcat实施自定义身份验证

tomcat

大家好,我使用的是Tomcat
6.0.14,并且想知道要实现一个系统,该系统允许我们向用户发送链接,例如mysite.com?token=12345678912334333(长字符串继续),但允许用户自动登录。


阅读 326

收藏
2020-06-16

共1个答案

一尘不染

除非您有其他特定于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即可对令牌进行身份验证。

不用说,通过电子邮件使用基于令牌的登录本质上是不安全的,因此并不适合所有类型的应用程序。

2020-06-16