我配置了grails saml插件并加载了SP元数据文件。当我尝试访问应用程序上的受保护资源时,我收到以下错误。我似乎无法找到有关它的任何信息。
Metadata for entity testing-app and role {urn:oasis:names:tc:SAML:2.0:metadata}SPSSODescriptor wasn't found
答案 0 :(得分:3)
我尝试的第一件事(因为这个工作时间令人沮丧的百分比)是谷歌搜索“SPSSODescriptor找不到”(以及一些变种,但都带有引号保持它作为一个短语)只有这个问题出现了。看起来生成该消息的代码似乎是发现这些消息的最快路径,所以我使用了GitHub的代码搜索in the plugin code但仍然没有运气。谷歌搜索" SPSSODescriptor" (带引号以防止它被分成更短的术语)有很多结果,但在快速扫描后没有任何明显的帮助。
仍然在寻找代码,我尝试了第一次搜索的轻松版本: saml"找不到"' - 保持" isn& #39; t found"一起 - 这导致在GitHub的spring-security-saml项目的org.springframework.security.saml.context.SAMLContextProviderImpl
类中发现了这段代码:
if (entityDescriptor == null || ,aa,phrase and thatlead to this a/aibg -psroleDescriptor == null) {
throw new MetadataProviderException("Metadata for entity " + localEntityId + " and role " + localEntityRole + " wasn't found");
}
和宾果! - 这是插件使用的库。
所以它找不到必需的<md:SPSSODescriptor>
元素(它包含在<md:EntityDescriptor>
描述符元素中,包含名称空间md
和urn urn:oasis:names:tc:SAML:2.0:metadata
,因此本地实体ID&#34; testing-app&#34;。
{urn:oasis:names:tc:SAML:2.0:metadata}SPSSODescriptor
部分。
如果您查看sample message flow in the Wikipedia article,您会发现如果没有<md:SPSSODescriptor>
元素中包含的断言消费者服务元数据,您将无法走得更远
答案 1 :(得分:1)
问题在于默认SP别名中的拼写错误。所以它正在加载SP元数据文件,但由于别名查找不正确而无法找到entityDescriptor