如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?
Posted
技术标签:
【中文标题】如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?【英文标题】:How can I setup a web Application to use ADFS /SAML/WS-* in JAVA? 【发布时间】:2013-06-06 01:04:06 【问题描述】:我有一对使用 Wicket-1.5.x 用 Java 1.6.X 编写的 Web 应用程序 我工作的另一个组织维护一个公共登录门户我的 Web 应用程序要与之集成,通过 ADFS/SAML 令牌提供用户身份。
他们实际上提供了一个示例应用程序供我查看,但它是用 ASP.net 编写的。执行身份检查的应用程序部分正在使用 Windows Identity Foundation 类,因此不适合。在将 ASP.net 代码转换为 Java 代码进行网络搜索时,我找到了Grasshopper,但我有 VS 2010,它“需要”2008 并且不会安装。
我创建了一个简单的测试页面,显示了它可以找到的所有 cookie,当我得到:JSESSIONID、utma、utmz、utmb、utmc 时,我收到的所有 cookie 都不像 SAML 令牌。
我已尝试运行其他组织示例的托管版本。 Sample.domain.com cookie 甚至在 AFTER 样本应用程序安全页面加载之前都不存在。那么,如果在我的页面加载后才创建 cookie,我如何获取身份信息?
这就是 WS-Federation 的用武之地吗?
【问题讨论】:
【参考方案1】:我最终确实解决了我的问题。我最终将Apache CXF Fediz 与我的应用程序集成。它仍然相对较新,但它可以工作,并且经过一些调整就能满足我的需求。
【讨论】:
【参考方案2】:WIF 使用 WS-Federation,据我所知没有 Java 等效项。
但是,您可以使用 SAML。参考:SAML : A SAML stack。
【讨论】:
我最近才发现Fediz 项目。它将 WS-Federation 添加到 Apache CXF。以上是关于如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个 .INI 文件以在 Java 中存储一些设置?
如何在 Java 应用程序中设置 H2 嵌入式数据库以在小型网络中使用?
如何将值设置为可选的 QueryParam 以在 java 中调用 rest api