我有一个对我们的网络(使用我们的内部 LDAP 服务器)安全的 Tomcat webapp(多个应用程序和单点登录启用)。现在,我想将该 web 应用程序公开给外部组织中的用户。我们有一个内部团队,该团队与外部组织的 LDAP 服务器通信,并在用户通过验证后返回 JWT 令牌。我如何将它集成到我们的 Tomcat 服务器中?
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)
归档时间: |
|
查看次数: |
4842 次 |
最近记录: |