You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于org.apache.wss4j 2.3.0中AuthDecisionStatementBean.setEvidence方法的参数类型咨询

关于org.apache.wss4j 2.3.0中AuthDecisionStatementBean.setEvidence方法的参数类型咨询

我之前也踩过WSS4J文档模糊的坑,特意翻了2.3.0版本的源码和实际项目中的使用场景,给你理清楚这个问题:

虽然官方文档只写了参数类型是Object,但结合SAML 1.1的规范和WSS4J的实际实现,你实际应该传入的是AssertionBean对象,或者List<AssertionBean>集合。

Evidence在SAML规范里的作用是引用已有的身份断言,作为当前授权决策的依据,而WSS4J里用AssertionBean来封装SAML断言的结构数据。

结合你的代码,补全setEvidence的使用示例:

// 先创建一个用作证据的AssertionBean实例,设置必要属性
AssertionBean evidenceAssertion = new AssertionBean();
evidenceAssertion.setIssuer("your-issuer-entity-id");
evidenceAssertion.setSubject(new SubjectBean("subject-id"));
// 可以根据需求设置断言的签名、有效期等其他属性

// 传入单个AssertionBean或者其列表都可以
authDecisionStatementData.setEvidence(List.of(evidenceAssertion));
// 或者直接传单个对象
// authDecisionStatementData.setEvidence(evidenceAssertion);

之所以文档写Object类型,是因为WSS4J的这个设计留了兼容扩展的空间,但在实际的业务场景中,只有AssertionBean(或其集合)能被后续的SAML断言生成逻辑正确解析并转换成符合规范的Evidence元素。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:23:07