早上好,我目前正在 kubernetes ingress 中部署一个服务,我遇到了一个问题,我需要通过 sso 发送一个加密参数作为 url 中 get 方法的输入参数,它给了我入口将其视为规则的问题:
我的入口规则
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-develop
namespace: develop
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "20"
spec:
ingressClassName: nginx-dev
tls:
- secretName: srvdevma1-ssl
rules:
- http:
paths:
- path: /userProfile/v3.6/users/.*
pathType: Prefix
backend:
service:
name: user-profile
port:
number: 8080
作为输入参数,我必须在 sso 中发送加密参数,如下所示:
2IuUHKRcst/S6GGf+RKONg==
问题是,当我发送它时,它通常以 / 作为规则,因此它返回一个资源未找到错误:
有什么办法可以解决这个问题吗?
您必须对您的值进行 url 编码,因为它是 URL 的一部分。并且它具有具有特殊含义的字符,例如“/”,“+”,“=”等字符在您的值中。