java - pac4j-saml 客户端未向 IDP 发送请求
问题描述
我正在尝试让 pac4j-saml 运行。我有一个本地 IDP 正在运行,现在正在尝试通过 tomcat 设置一个简单的服务提供商。
根据文档,这应该相当简单,但它不起作用。
如果我对文档的解释是正确的,这应该会触发对 IDP 的 SP 请求:
<%@ page import="org.pac4j.saml.client.SAML2Client" %>
<%@ page import="org.pac4j.saml.config.SAML2Configuration" %>
<%@ page import="org.springframework.core.io.FileSystemResource" %>
<%
SAML2Configuration cfg = new SAML2Configuration(
new FileSystemResource("/path/to/samlKeystore.jks"),
"password",
"password",
new FileSystemResource("/path/to/idp.xml")
);
cfg.setAuthnRequestBindingType("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
SAML2Client client = new SAML2Client(cfg);
client.setCallbackUrl("http://localhost:8080/saml/callback.jsp");
%>
test
测试打印在页面上,但没有重定向。所以至少我所有的进口和tomcat等都按预期工作。
我的一些 saml 代码似乎可以工作,因为我可以使用以下命令使用 pac4j-saml 库创建 SP 元数据:
<%
//Get SP metadata.xml
out.print(client.getServiceProviderMetadataResolver().getMetadata().toString());
%>
谁能给我一个提示,让我知道我缺少什么来获得对 IDP 的初始请求?
谢谢, FMK
解决方案
根据库的维护者的说法,这是不使用任何集成的方法(这在我的情况下有效):
<%@ page import="org.pac4j.saml.client.SAML2Client" %>
<%@ page import="org.pac4j.saml.config.SAML2Configuration" %>
<%@ page import="org.springframework.core.io.FileSystemResource" %>
<%
SAML2Configuration cfg = new SAML2Configuration(
new FileSystemResource("/path/to/samlKeystore.jks"),
"password",
"password",
new FileSystemResource("/path/to/idp.xml")
);
cfg.setAuthnRequestBindingType("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
SAML2Client client = new SAML2Client(cfg);
client.setCallbackUrl("http://localhost:8080/saml/callback.jsp");
J2EContext context = new J2EContext(request, response);
client.redirect(context);
%>
推荐阅读
- javascript - 我应该如何在我的“约瑟夫问题”代码中解决这个异步问题?
- python - 使用正则表达式查找包含“标签”的块
- javascript - React JS - 语义 UI 中搜索组件的值是对象引用,而不是值
- python - json对python变量的响应
- bash - How to get first and second part of a string in bash on last occurrence of a delimiter
- r - 从连续字符串格式的日期列中提取“年”、“月”和“日”
- reactjs - 函数是否不会根据调用方式更新 React 钩子(尤其是 useState)?
- html - 如何将包含 html 标签的网页复制到 Fluter 应用程序?
- java - JAVAFX 如何在更改后更新复选框取消选择?
- unity3d - 如何为统一设置 Firebase 远程配置?