wso2 api管理器,可选身份验证(v1.9)

wso2 api管理器,可选身份验证(v1.9),wso2,wso2-am,Wso2,Wso2 Am,我正在使用wso2的一个较旧(v1.9)版本,我们正在尝试基本上有一个端点,该端点上有可选的身份验证。如果资源上的安全设置为None,则如果请求带有令牌(已验证),则不会将其发送到后端。如果设置了授权头,是否有办法强制wso2 v1.9在这样的路由上进行身份验证并将JWT转发到后端?在API Manager v1.9中,默认情况下,它会从消息上下文中删除身份验证头,并且不会传递到后端服务[1] 有一个名为RemoveOAuthHeadersFromOutMessage的属性,您可以在其中禁用删除

我正在使用wso2的一个较旧(v1.9)版本,我们正在尝试基本上有一个端点,该端点上有可选的身份验证。如果资源上的安全设置为
None
,则如果请求带有令牌(已验证),则不会将其发送到后端。如果设置了授权头,是否有办法强制wso2 v1.9在这样的路由上进行身份验证并将JWT转发到后端?

在API Manager v1.9中,默认情况下,它会从消息上下文中删除身份验证头,并且不会传递到后端服务[1]

有一个名为RemoveOAuthHeadersFromOutMessage的属性,您可以在其中禁用删除此标头[2]。 但这是一个系统范围的配置,它会影响系统中的所有API。如果将此值设置为false,则对于所有API,它不会删除Auth头。在这种情况下,您可以使用全局序列或自定义序列[3]选择性地删除此验证标头

另一种解决方法:

您可以使用自定义处理程序[4],并在API安全处理程序之前应用此处理程序。在此处理程序中,您可以将auth头值复制到其他头,然后使用自定义序列将自定义头值再次复制到auth头。在这种情况下,不需要更改RemoveOAuthHeadersFromOutMessage的值。但在处理程序中,必须有选择地执行此操作

[1] -

[2] -

[3] -

[4] -