java - 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……
干杯!
解决方案
我设法用 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 一起使用。
可能不是理想的方式,但它有效。
推荐阅读
- javascript - 上传捕获图像并将其存储在文件夹中,使用用户 ID 将其文件名更改为唯一
- python - Python 总是返回 False
- python - 使用 Arduino 使用 Tkinter 时打开/关闭 LED
- r - R 计算净交易价值
- sql-server - 关于我的查询代码拥有和在哪里的问题
- go - 使用 cgo 时是否会发生数据竞争?
- scala - 如何运行示例 Scala vertx 项目
- reactjs - 为什么我得到 Erroe:期望一个赋值或函数调用,而是看到一个表达式 no-unused-expressions
- c# - SignInManager 引发无效的对象名称 AspNetUserClaims 异常
- sql - 用于循环日期和汇总数据的 SQL