在我正在开发的项目中,我们有一个自定义的Identity Asserter Attribute Mapper类,它实现了SAMLIdentityAssertionAttributeMapper
接口。该类实现方法mapAttributeInfo
。
文档说明如下:
“void mapAttributeInfo(Collection attrStmtInfos, ContextHandler contextHandler)
从SAMLAttributeStatementInfo集合映射到Principal集合。此接口的实现应该将Principal的集合添加到名称为ContextElementDictionary.SAML_ATTRIBUTE_PRINCIPALS的上下文处理程序中“(http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13941/weblogic/security/providers/saml/SAMLIdentityAssertionAttributeMapper.html)
当项目在WebLogic 10.3.2上运行时,这条线路运行良好:
((SecurityTokenContextHandler)contextHandler).addContextElement(ContextElementDictionary.SAML_ATTRIBUTE_PRINCIPALS, principals);
现在项目应该在WebLogic 10.3.6上运行,并且使用10.3.6 jar,我找不到包含ContextElementDictionary.SAML_ATTRIBUTE_PRINCIPALS
的jar。不幸的是,当用Google搜索ContextElementDictionary
时,我无法在8个搜索结果中的任何一个中找到解决方案。
答案 0 :(得分:0)
这更像是一条评论,但发布的时间太长......
ContextElementDictionary存在于默认的weblogic.jar文件中。请参阅以下结果:
jar -tf /opt/ora/mw/wlserver_10.3/server/lib/weblogic.jar | grep ContextElementD
weblogic/security/utils/ContextElementDictionary.class
但是,当我这样做时,该类似乎不包含ContextElementDictionary.SAML_ATTRIBUTE_PRINCIPALS:
strings weblogic/security/utils/ContextElementDictionary.class
也许比较这两个jar文件和那两个类来查看是否有变化。