问题:
Caused by: java.lang.SecurityException: Attempt to deserialize unauthorized class cn.seczone.sscsp.common.model.TaskSbomMessageMq; add allowed class name patterns to the message converter or, if you trust the message orginiator, set environment variable ‘SPRING_AMQP_DESERIALIZATION_TRUST_ALL’ or system property ‘spring.amqp.deserialization.trust.all’ to true
经过查博客和gpt最终得到几个结果
方案一:
在配置文件配置信任的类
spring:rabbitmq:listener:simple:allowed-classes:- cn.baidu.kkscsp.common.mq.TaskSbomMessageMq
- cn.baidu.kkscsp.common.mq.TaskMessageMq
方案二:
自定义一下一个消息转换的bean,并在其中设置信任的包,即实体类的路径
生产者:
publicclassRabbitMQConfig{@BeanpublicMessageConverterjsonToMapMessageConverter(){DefaultClassMapper defaultClassMapper =newDefaultClassMapper();
defaultClassMapper.setTrustedPackages("cn.baidu.kkscsp.common.mq");// trusted packagesJackson2JsonMessageConverter jackson2JsonMessageConverter =newJackson2JsonMessageConverter();
jackson2JsonMessageConverter.setClassMapper(defaultClassMapper);return jackson2JsonMessageConverter;}}
消费者:
@ConfigurationpublicclassRabbitMQConfig{@BeanpublicMessageConvertermessageConverter(){returnnewJackson2JsonMessageConverter();}}
最终测试方案二是没问题,方案一没效果。
版权归原作者 码至终章 所有, 如有侵权,请联系我们删除。