大家好, 我正在使用 Tomcat 6.0.14 并想知道实现一个系统,该系统允许我们向用户发送一个链接,例如 mysite.com?token=12345678912334333(长字符串继续),但这将允许用户自动登录.
最佳答案
除非您有其他特定于 Tomcat 的原因,或者您无法修改您的 Web 应用程序,否则使用自定义过滤器进行身份验证(JAAS 或其他方式)可能是最简单的方法。例如:
- http://www.kopz.org/public/documents/tomcat/jaasintomcat.html
- http://securityfilter.sourceforge.net/
使用自定义过滤器,您可以以相对简单的方式以任何您想要的方式进行身份验证。
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 标记。这与仅使用简单 token 进行身份验证不同,但如果这就是您要寻找的内容,那么您是否熟悉 Tomcat 的 JAASRealm?您只需要编写自己的 LoginModule验证 token 。
不用说,通过电子邮件使用基于 token 的登录本质上是不安全的,因此并不适合所有类型的应用程序。
关于authentication - 使用 Tomcat 实现自定义身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4832992/