使用 spnego 凭据访问不同页面
我有一个使用 serverA 的 jetty 6.1.12 提供服务的应用程序。 serverA 使用 spnego 过滤器进行 kerberized,当我从浏览器运行它时运行良好。 我现在尝试从 serverA 中的一个类访问不同的站点 (serverB)。 这个新站点使用相同的身份验证方案,即如果用户可以看到服务器 A 上的页面,他也可以看到服务器 B 上的页面。 有没有办法从 Web 服务器(serverA)获取 kerberos 凭据并将其传递到其他地方?
错误报告 (https://bugs.java.com/bugdatabase/view_bug?bug_id= 6549811)说spnego代表团很久以前就被修复了,所以我想一定有办法做到这一点。
我正在使用Java 1.6。 为了对 serverB 进行 http 调用,我使用 apache commons httpclient 3.1。
I have an application that is served using jetty 6.1.12 from serverA. serverA is kerberized using the spnego filter and runs fine when I run it from the browser. I am now trying to access a different site (serverB) from one of the classes in the serverA. This new site uses the same authentication scheme i.e., if user can see pages on serverA, he can also see pages on serverB. Is there a way to get the kerberos credentials from the web server (serverA) and pass it on to other places?
The bug report (https://bugs.java.com/bugdatabase/view_bug?bug_id=6549811) says spnego delegation was fixed a long time ago, so I am thinking there must be a way to do this.
I am using Java 1.6. To do the http call to serverB, I am using apache commons httpclient 3.1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我发现,问题不在于码头。 当我使用 jass.conf 作为 login.conf 文件和 Http(s)URLConnection 而不是公共 httpclient 时,委派似乎可以工作。
As I found out, the problem is not with jetty. Delegation seems to work when I use jass.conf for the login.conf file and Http(s)URLConnection instead of the commons httpclient.
这是一个展示如何进行凭据委托的项目 http://spnego.sourceforge.net/credential_delegation.html< /a>. 免费开源项目使用 SpnegoHttpURLConnection 类进行从 serverA 到 serverB 的调用。
Here's a project that shows how to do credential delegation http://spnego.sourceforge.net/credential_delegation.html. The free and open source project uses a SpnegoHttpURLConnection class to make the call from serverA to serverB.