Клиент pac4j-saml не отправляет запрос IDP
Я пытаюсь запустить pac4j-saml. У меня работает локальный IDP, и теперь я пытаюсь настроить простого поставщика услуг через tomcat.
Согласно документации, это должно быть довольно просто, но это не сработает.
Если моя интерпретация документации верна, это должно вызвать запрос SP к IDP:
<%@ 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
Тест распечатан на странице, но перенаправления нет. Так что, по крайней мере, весь мой импорт, кот и т. Д. Работают, как ожидалось.
Кажется, что часть моего кода saml работает, поскольку я могу создать метаданные SP с помощью библиотеки pac4j-saml с помощью этой команды:
<%
//Get SP metadata.xml
out.print(client.getServiceProviderMetadataResolver().getMetadata().toString());
%>
Может ли кто-нибудь подсказать мне, чего мне не хватает, чтобы получить первоначальный запрос к IDP?
Спасибо, ФМК
1 ответ
По словам сопровождающего библиотеки, это способ сделать это без использования каких-либо интеграций (в моем случае это работает):
<%@ 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);
%>