Grails Spring Security SAML插件" SPSSODescriptor未找到"

时间:2014-12-13 19:39:07

标签: grails spring-security saml

我配置了grails saml插件并加载了SP元数据文件。当我尝试访问应用程序上的受保护资源时,我收到以下错误。我似乎无法找到有关它的任何信息。

Metadata for entity testing-app and role {urn:oasis:names:tc:SAML:2.0:metadata}SPSSODescriptor wasn't found

2 个答案:

答案 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