当前位置: 首页 > 知识库问答 >
问题:

在Spring集成过滤器中更改有效载荷

令狐泓
2023-03-14

我正在用Spring集成编写一个过滤器。

在这个过滤器中,我检查了一组先决条件。如果不满足任何先决条件,我将需要更改消息有效载荷(甚至头),以添加用户要完成的操作集,以满足它,并通过discar通道将其返回给用户。

我可以使用服务激活器,但我认为过滤器在这种情况下更具描述性。

最干净的方法是什么?

这是一种伪代码:

@Filter
public boolean checkEventPreconditions(Message<?> messageIn)
{
    //Here I am returning the set of actions to satisfied preconditions
    List<Integer> actionsId = returnActions();

    if(actionsId.isEmpty())
    {
        return true;
    }
    else
    {
        //Here I need to add actionsId to the message
        return false;
    }

}

谢谢

共有1个答案

周正真
2023-03-14

不,不要混合关注:过滤器只需要检查是否进一步发送消息或丢弃它。更改消息是变压器的责任。所以,您要做的应该放在丢弃流中。

 类似资料:
  • 请告诉我是否有方法覆盖spring integration XSD validator引发的默认soap错误。默认情况下,生成的故障是客户端故障,但我想将其更改为自定义故障代码。是AbstractSoapFaultDefinitionExceptionResolver。getFaultDefinition()是执行此操作的正确位置?

  • 我正在我的web应用程序中使用spring cloud sleuth。不幸的是,我接到呼叫的第三方正在X-B3-TraceId标头中发送UUID。但是,spring中的TraceFilter在从字符串转换为十六进制时可能会检测出错误,因为UUID中有“-”字符。因此,我决定编写自己的过滤器,它将在TraceFilter之前拦截请求,并从标头中删除跟踪id。这是我的配置: 这是spring clou

  • 我有下面的servlet过滤器。

  • 问题内容: 我正在使用Spring Security来保护对网站的HTTP请求。主要用途是保护页面安全,以便在尝试访问这些页面时将用户重定向到登录页面。 但是,我还有一个要求。在我的模型中,我可以将用户密码标记为临时密码,这样,当用户成功登录时,应自动强制他们更改密码。更改密码后,应将其转发到最初尝试访问的页面。 有人为此目的使用过Spring Security吗?我需要创建自己的自定义过滤器吗?

  • 问题内容: 我想要的是类似于文档中的此示例的示例,但是具有唯一的输入,可以通过“ any”,“ name”或“ phone”属性来扮演过滤的三个角色,角色的更改是通过单击锚点完成的。这是准备好的代码http://jsfiddle.net/ubugnu/QuyCU/如何动态更新ng- model属性? 的HTML JS 问题答案: 您可以定义如下:动态更改应绑定到哪个变量(另一个变量在哪里)。 参见

  • 在采集的使用中我们为采集项,设置了过滤项后,有的时候会出现无效的情况。也就是采集出来的结果并没有按我们的想像的把过滤项给删除了。这是为什么呢? 如下面的一个例子,我们在过滤项中进行如下的设置: ../down.php?uri=[|] 他的意思是要把“../down.php?uri=”给过滤掉。可采集出来的结果很不近人意。并没有把这个字符串给过滤掉。这是为什么呢? PHPCMS V9的采集