gpt4 book ai didi

java - 如何使用 opensaml v3?几乎没有文档,v2 已停产

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:47 25 4
gpt4 key购买 nike

是否有使用 Open SAML 库 v3 的端到端示例?我找不到任何文档,根据 https://wiki.shibboleth.net/confluence/display/OpenSAML/Home v2 已停产。

我正在使用以下代码来获取 SAML 断言-

  private UnmarshallerFactory unmarshallerFactory;
private DocumentBuilder docBuilder;

@PostConstruct
public void init() {

try {
InitializationService.initialize();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
docBuilder = documentBuilderFactory.newDocumentBuilder();
unmarshallerFactory = XMLObjectProviderRegistrySupport.getUnmarshallerFactory();
} catch (Exception e){
logger.error("Error: ",e);
}
}

public Assertion getSamlAssertion(String samlResponse)
throws IOException, XMLParserException, UnmarshallingException, SAXException {

Document document = docBuilder.parse(new StringInputStream(samlResponse));

Element element = document.getDocumentElement();
Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(element);
XMLObject responseXmlObj = unmarshaller.unmarshall(element);
Response response = (Response) responseXmlObj;
return response.getAssertions().get(0);

}

我的 POM-

         <dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-core</artifactId>
<version>3.2.0</version>
</dependency>


<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-api</artifactId>
<version>3.2.0</version>
</dependency>

问题是我为 unmarshaller 获取了 null 。我已验证 samlResponse 有效

最佳答案

您必须在 POM 中包含实现。

<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-impl</artifactId>
<version>3.2.0</version>
</dependency>

版本 3 中完成的其中一件事是将库拆分为许多不同的模块。

是的,文档有问题。但据我了解,开发团队知道这一点。同时,我写了一本关于这个主题的书,A Guide to OpenSAML V3 .它介绍了 OpenSAML 的使用和 V3 中的更改。

关于java - 如何使用 opensaml v3?几乎没有文档,v2 已停产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40558996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com