@@ -53,18 +53,28 @@ func UpdateEnvResolver(ctx context.Context, params model.UpdateEnvInput) (*model
5353 }
5454
5555 if isJWTUpdated {
56+ // use to reset when type is changed from rsa, edsa -> hmac or vice a versa
57+ defaultSecret := ""
58+ defaultPublicKey := ""
59+ defaultPrivateKey := ""
5660 // check if jwt secret is provided
5761 if crypto .IsHMACA (algo ) {
5862 if params .JwtSecret == nil {
5963 return res , fmt .Errorf ("jwt secret is required for HMAC algorithm" )
6064 }
65+
66+ // reset public key and private key
67+ params .JwtPrivateKey = & defaultPrivateKey
68+ params .JwtPublicKey = & defaultPublicKey
6169 }
6270
6371 if crypto .IsRSA (algo ) {
6472 if params .JwtPrivateKey == nil || params .JwtPublicKey == nil {
6573 return res , fmt .Errorf ("jwt private and public key is required for RSA (PKCS1) / ECDSA algorithm" )
6674 }
6775
76+ // reset the jwt secret
77+ params .JwtSecret = & defaultSecret
6878 _ , err = crypto .ParseRsaPrivateKeyFromPemStr (* params .JwtPrivateKey )
6979 if err != nil {
7080 return res , err
@@ -81,6 +91,8 @@ func UpdateEnvResolver(ctx context.Context, params model.UpdateEnvInput) (*model
8191 return res , fmt .Errorf ("jwt private and public key is required for RSA (PKCS1) / ECDSA algorithm" )
8292 }
8393
94+ // reset the jwt secret
95+ params .JwtSecret = & defaultSecret
8496 _ , err = crypto .ParseEcdsaPrivateKeyFromPemStr (* params .JwtPrivateKey )
8597 if err != nil {
8698 return res , err
0 commit comments