клиент pac4j-saml не отправляет запрос в IDP - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь запустить 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

Тест напечатан на странице, но перенаправление отсутствует. Так что, по крайней мере, весь мой импорт и tomcat et c. работают должным образом.

Некоторые из моих кодов saml, похоже, работают, так как я могу создать метаданные SP с помощью библиотеки pac4j-saml, используя эту команду:

<%
//Get SP metadata.xml
out.print(client.getServiceProviderMetadataResolver().getMetadata().toString());
%>

Может кто-нибудь подскажите, что мне не хватает, чтобы получить первоначальный запрос к ВПЛ?

Спасибо, FMK

1 Ответ

0 голосов
/ 12 марта 2020

По словам сопровождающего библиотеки, это способ сделать это без использования какой-либо интеграции (это работает в моем случае):

<%@ 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);

%>
...