首页 > 解决方案 > SSO 的泽西岛身份验证

问题描述

我目前正在尝试使用 Jersey 访问 Jira REST。问题是我们的 Jira 设置了单点登录。使用“client.addFilter(new HTTPBasicAuthFilter(...”) 进行身份验证不起作用。如果我通过浏览器访问 Jira,然后将收到的 cookie 硬编码到 Jersey 中,我就可以访问 Jira REST。

我现在的问题是如何通过 SSO 使用 Jersey 登录。从我所看到的,单击 SSO 页面上的“登录”只会发送一个带有请求正文的 POST 请求,例如“username=&password=&login-form-type=pwd”。所以我应该能够以我猜想的方式用 Jersey 检索一个 cookie……

干杯!

标签: javarestjerseyjira

解决方案


我设法用 Selenium Ghost Driver 完成了它。

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                "/Path/to/bin/phantomjs");                  
driver = new PhantomJSDriver(caps);

之后我使用驱动程序输入用户名和密码,登录,获取新的 cookie,然后将这个 cookie 与 Jersey 一起使用。

可能不是理想的方式,但它有效。

如何使用 Java 使用 Selenium 运行 ghostdriver


推荐阅读