Kubernetes NGINX Ingress: отключить базовую аутентификацию для определенного пути - PullRequest
0 голосов
/ 31 января 2019

Я хочу отключить базовую аутентификацию только для определенного подпути моего приложения.Как это можно сделать?

например,

Все подпути должны быть защищены базовой аутентификацией:

/ 

Этот путь должен бытьисключение и общедоступный доступ:

/#/public 

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app
  labels:
    app: app
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: "true"
    ingress.kubernetes.io/auth-type: basic
    ingress.kubernetes.io/auth-secret: basic-auth
    ingress.kubernetes.io/auth-realm:  "Authentication Required"
spec:
  rules:
  - host: "<MYHOST>"
    http:
      paths:
      - path: /
        backend:
          serviceName: app-service
          servicePort: 80
  tls:
    - secretName: "app-secret"
      hosts:
      - "<MYHOST>"

1 Ответ

0 голосов
/ 31 января 2019

Путь, который вы пытаетесь использовать (/#/public), никогда не достигает сервера, клиент отправляет только /.Вот почему вы не можете отключить де-аутентификацию.

Символ (#) является разделителем для идентификатора фрагмента URL. rfc2396 объясняет это.

Семантика идентификатора фрагмента является свойством данных, полученных в результате действия поиска, независимо от типа URI, используемого в ссылке

Если вы задаете хвостВ журналах вашего входного модуля вы увидите URL-адрес, который достигает сервера.

Дополнительное примечание: если вам нужен URL-адрес для доступа к серверу, вам нужно его urlencode, /%23/public, но это что-то сдругое значение.

С уважением.

...