Spring Security OAuth2 - 自定义身份验证

时间:2015-02-25 15:09:15

标签: spring-security spring-security-oauth2

我们需要向外界公开REST端点,以便我们无法控制的外部服务调用。负责此外部服务的人员似乎是安全专家(),因此他们不是使用至少HTTP Basic Auth或任何其他真正的身份验证机制,而是使用固定的机密身份验证自己。它是这样的:

GET /endpoint?secret=WE_ARE_THE_TRUE_GUYS

由于我们已经在使用spring-security-oauth2,我们希望将此身份验证流程与我们现有的流程集成,以便我们可以为每个其他要点指定此端点的规则在我们的ResourceServer上,获得相同的错误处理行为等。我们如何实现自定义身份验证过滤器 - 或者它可能是什么 - 从查询字符串中获取secret参数,转换它成为某种"客户凭证"对于AuthorizationServer上的预配置客户端,并与OAuth2流的其余部分无缝集成?

1 个答案:

答案 0 :(得分:2)

如果您可以将“WE_ARE_THE_TRUE_GUYS”转换为有效的OAuth2Authentication,那么您只需要一个认证过滤器(并将其粘贴在SecurityContext中)。然后,下游过滤器和处理程序的行为就像它是真正的OAuth2身份验证一样。如果我是你,我会在该过滤器中设置一些非常紧凑的条件,以便将请求与来自这个极不寻常且不太安全的身份验证通道的允许资源上的请求相匹配。

相关问题