我正在尝试运行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);
%>