Tomcat 可以使用 JWT 令牌吗

Adn*_*n Z 2 java tomcat ldap

我有一个对我们的网络(使用我们的内部 LDAP 服务器)安全的 Tomcat webapp(多个应用程序和单点登录启用)。现在,我想将该 web 应用程序公开给外部组织中的用户。我们有一个内部团队,该团队与外部组织的 LDAP 服务器通信,并在用户通过验证后返回 JWT 令牌。我如何将它集成到我们的 Tomcat 服务器中?

gab*_*ssi 5

Tomcat 是一个 servlet 容器,所以您尝试过使用 servlet 过滤器吗?

public class JWTFilter implements Filter {

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain){
    HttpServletRequest req = (HttpServletRequest) request;
    String stringToken = req.getHeader("Authorization");
    if (stringToken == null || stringToken.indexOf("Bearer") == -1) {
            throw new Exception("Authorization header not found");
    }
    stringToken = stringToken.substring(authorizationSchema.length()).trim();
    <YourLibraryJWT> jwtToken = <YourLibraryJWTParser>.parse(stringToken);
    if (!<YourLibraryJWTVerifier.verify(jwtToken)){
      throw new Exception("JWT corrupt");
    }
    chain.doFilter(request,response,chain);
  }
}
Run Code Online (Sandbox Code Playgroud)