我正在尝试通过oauth支持实现cometd api。我无法通过元通道的Listener方法从ServerMessage中提取主体详细信息。
我的api使用承载令牌进行身份验证,我看到在调用monitorMeta()之前会调用spring安全类。但是我看到主体在BayeuxContext中填充为null。
@Listener("/meta/*")
public void monitorMeta(ServerSession session, ServerMessage message) {
BayeuxContext context = message.getBayeuxContext();
Principal principal= context.getUserPrincipal();
}
如何从cometD侦听器类中的SecurityHandler获取主体详细信息。我的意图是从主体中提取用户ID,并保存与用户ID和ServerSession的内部连接映射。因此,我将在消息发布期间使用此映射到正确的客户端匹配用户ID。