jmap-server icon indicating copy to clipboard operation
jmap-server copied to clipboard

[bug]: On multiple unverified PushSubscriptions Stalwart always tries to reverify the first

Open iNPUTmice opened this issue 2 years ago • 1 comments

What happened?

When creating multiple pending/unverified PushSubscriptions Stalwart always tries to verify only the first one. No PushVerification is ever received on the subsequent PushSubscriptions.

How can we reproduce the problem?

I can reproduce the problem by doing the following steps:

  • Create a PushSubscription with deviceClientId a and url b
  • Do not validate it. (Do not run PushSubscription/set with the verification code
  • Create another PushSubscription with deviceClientId x and URL y
  • Observe a PushVerification request for the first one

Version

v0.4.x

What database are you using?

None

What blob storage are you using?

None

Where is your directory located?

None

What operating system are you using?

None

Relevant log output

{
  "methodCalls": [
    [
      "PushSubscription/set",
      {
        "create": {
          "ps0": {
            "deviceClientId": "88dc94c7-bf67-4756-ae67-0e3e006df112",
            "url": "https://up.conversations.im/push/v2.local.nR81YB6uH3B0pN-_I2f9yXpFyjmS0ig5NgV0T5w-TQjCfZC0YAsDXz5vT3dSK_TBKArO9UdgDQEMna0O5OmKYpPdh3Ri6tDp5wDk17PccNTWQmAhkITLafwSlJ_rPkrKqWVOXIaDPD9rEAjeVVfjbiR-JnYzYYAvOqwiITJRDp2xb7qyteVnL0MxCgE9BUu61sfFyolWFbiQVLrKOKZKFsUwPsT-NA77k3orlnF-h6-LQX5umsmHv-PbwJ_47eZRspfo4kZn2eOdJ6GWR35ZENDbCTcS1cLOfje8ORGGTvdh44bV0L9OJA"
          }
        }
      },
      "0"
    ]
  ],
  "using": [
    "urn:ietf:params:jmap:core"
  ]
}
{
  "methodResponses": [
    [
      "PushSubscription/set",
      {
        "created": {
          "ps0": {
            "id": "c",
            "keys": null,
            "expires": "2023-11-24T12:38:24Z"
          }
        }
      },
      "0"
    ]
  ],
  "sessionState": "3e25b2a0"
}

Received via WebPush:

PushVerification{pushSubscriptionId=a, verificationCode=z9iQlcXES5iUgCx2v5o9CO1Hr1T4LWO6}

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

iNPUTmice avatar Nov 17 '23 13:11 iNPUTmice

Hi,

somewhat related I've just implemented WebPush encryption and when I try to enable that on the server the server acknowledges this just fine but I’m not getting any notifcations

Here is what I use to create the PushSubscription:

{"methodCalls":[["PushSubscription/set",{"create":{"ps0":{"deviceClientId":"6acb1ae7-9a7e-4b6c-9fff-963bb8d69d81","keys":{"auth":"EFgUW3Rk48xRzYiD","p256dh":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs0fuQdcb5pK8Px-c2VuuJ4KO14Fta-AQEdQ8K3K_6a4Rw4U7KMIwVUSID0sWSIWSWiyCQG1EbW1XddUT0nBoDQ\u003d\u003d"},"url":"https://up.conversations.im/push/v2.local.fP8jgIeuQCKPseWpeEZiavuxlNEifveP2zuRJMmpMprHicTx2yXMizymCANlV1rd7IgcykHx24ViQPv_JueRrQnWbmQ7I8FcfSc7FeTIZ3-MVn5RMnkkecPcpTYvrA5CKSL3usdgcUgQ2ujhs0LxibqZHZ58oqt61z3XxAi8NsnUX-gZXoCRdhJJCcKDeE1u4QGf4rQPxlYznfge5fhpN__V97Lx9cgPa04un9mQTnFDKVJkTwH1pQls0HUqSRegEeKq_BfEy30QEI0g1LItUExn27ZtVTrtfWJfU1if2FbkDwdTDP3lPw"}},"destroy":[]},"0"]],"using":["urn:ietf:params:jmap:core"]}

iNPUTmice avatar Nov 19 '23 10:11 iNPUTmice