HAProxy: опущение аутентификации для URI не работает - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно иметь возможность пропустить аутентификацию для определенного URI, используя haproxy, но использование следующего файла конфигурации не работает.При доступе к whatever.server/app/my-app меня все равно просят предоставить учетные данные для входа.

global
    maxconn 4096
    daemon

userlist myUsers
    user someUser insecure-password somePass

defaults
    mode http
    log 127.0.0.1 local1 debug
    option httplog

frontend all
    bind  0.0.0.0:80
    timeout client 86400000
    default_backend www_backend
    acl is_websocket hdr(Upgrade) -i WebSocket
    acl is_webapp path_beg /app
    acl is_my_app path_beg /app/my-app
    acl auth_ok http_auth(myUsers)
    http-request auth unless auth_ok or is_websocket or is_my_app
    use_backend webapp_backend if is_webapp

backend www_backend
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    option httpclose
    timeout server 1800000
    timeout connect 4000
    server server1 localhost:81 weight 1 maxconn 1024 check

backend webapp_backend
    balance roundrobin
    option forwardfor # This sets X-Forwarded-For
    option httpclose
    timeout server 1800000
    timeout connect 4000
    server server1 localhost:8800 weight 1 maxconn 1024 check

Я использую haproxy v1.4

РЕДАКТИРОВАТЬ

Также пробовал

http-request allow if is_my_app
http-request auth unless auth_ok or is_websocket

, но он разрешает все URL без аутентификации

1 Ответ

0 голосов
/ 23 сентября 2018

Acls могут быть отменены, как упомянуто здесь https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#7.2

acl url_static path_beg /app/my-app
acl AuthOkay_Web http_auth(myUsers)
http-request auth realm AuthYourself if !isOptions !url_static !AuthOkay_Web

Также объяснено на https://serverfault.com/a/874742/297275

...