为 JUnit 绕过 LDAP

Bypassing LDAP for JUnit

我们需要绕过 Web 应用程序上的 LDAP 安全性以进行 运行 JUnit 测试。

我们使用 Jersey 框架并使用 Tomcat 8.5 作为我们的应用程序服务器,在 Java 中构建了一个 REST Web 服务。所有端点都有效,但现在是添加单元测试的时候了。出于显而易见的原因,我们希望从星期二开始以五种方式测试每个该死的端点。我们将使用 JUnit 来做到这一点。

问题是,我们的网站是通过 LDAP 保护的。除了输入正确的用户名和密码外,没有办法绕过它。这当然是不切实际的。当我们 运行 我们的 JUnit 测试时,有什么方法可以绕过 LDAP 安全吗?我们不允许以任何方式修改安全实现,但如果可能的话,我们可以通过编程方式绕过它。

我知道我可能在这里遗漏了大量需要的信息,但我对安全实现几乎一无所知,只知道我写的 REST 端点。

是否有绕过 LDAP 的简单方法?我需要提供任何其他信息吗?

您可以在不启动容器的情况下使用 Jersey Test Framework 运行 进行单元测试。这也应该允许您绕过任何安全措施,因为您的测试正在控制测试实例配置。

相当基础的教程:http://www.logicbig.com/tutorials/java-ee-tutorial/jax-rs/jax-rs-unit-testing/

如果您使用的是 LDAP,则可以像 Basic 一样通过身份验证。如果您知道用户名和密码,请在 header "Authorization" 后附加值 "Basic base64_token".

base64 令牌是一个字符串,使用您的用户名和密码进行 base64 编码,格式为 username:password。理想情况下,这应该有效。