dromara / dromara/Sa-Token

satoken对接dubbo,SameTokenInvalidException序列化问题

Open
#883 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Java
Stars
19k
Forks
2.9k
PR merge metrics
No merged PRs in 30d

Description

### 使用版本:
1.44.0

### 报错信息:
Caused by: java.io.IOException: org.apache.dubbo.common.serialize.SerializationException: java.lang.IllegalArgumentException: [Serialization Security] Serialized class cn.dev33.satoken.exception.SameTokenInvalidException is not in allow list. Current mode is `STRICT`, will disallow to deserialize it by default. Please add it into security/serialize.allowlist or follow FAQ to configure it.
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.handleToIOException(DefaultSerializationExceptionWrapper.java:353)
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.access$000(DefaultSerializationExceptionWrapper.java:27)
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectOutput.writeObject(DefaultSerializationExceptionWrapper.java:319)
at org.apache.dubbo.common.serialize.DefaultMultipleSerialization.serialize(DefaultMultipleSerialization.java:34)
at org.apache.dubbo.rpc.protocol.tri.ReflectionPackableMethod$WrapResponsePack.pack(ReflectionPackableMethod.java:320)
at org.apache.dubbo.rpc.model.PackableMethod.packResponse(PackableMethod.java:46)
at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcCompositeCodec.encode(GrpcCompositeCodec.java:87)
... 21 common frames omitted
Caused by: org.apache.dubbo.common.serialize.SerializationException: java.lang.IllegalArgumentException: [Serialization Security] Serialized class cn.dev33.satoken.exception.SameTokenInvalidException is not in allow list. Current mode is `STRICT`, will disallow to deserialize it by default. Please add it into security/serialize.allowlist or follow FAQ to configure it.
... 28 common frames omitted

### 希望结果:
抛出SameTokenInvalidException而不是SerializationException。

看起来像是SameTokenInvalidException没有序列化且不在 allow list里,被拦掉了。

### 复现步骤:
正常集成satoken-dubbo3的流程,开启same-token校验。consumer随便填sametoken,provider正常校验(故意校验失败)。

< 备注:如果复现步骤比较复杂,请将 demo 上传到 gitee 并留下地址 >

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the satoken-dubbo3 integration with same-token validation enabled and an invalid consumer token. Inspect how SameTokenInvalidException is handled across the provider-consumer serialization path. Done means the consumer receives SameTokenInvalidException rather than Dubbo SerializationException, with coverage for the reported failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend, distributed-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.