У меня есть приложение spring с отслеживанием состояния, и я хочу развернуть его в кластере kubernetes. Будет более одного экземпляра приложения, поэтому мне нужно включить sticy-сессию с помощью контроллера ingress-nginx. Я сделал следующую конфигурацию:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "JSESSIONID"
nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
nginx.ingress.kubernetes.io/session-cookie-path: /ingress-test
# UPDATE THIS LINE ABOVE
spec:
rules:
- http:
paths:
- path: /ingress-test
backend:
serviceName: ingress-test
servicePort: 31080
ingress-nginx перенаправляет последующий запрос на правильный модуль, если вход в систему выполнен успешно. Однако иногда он переключается на другой модуль сразу после изменения JSESSIONID (файл cookie JSESSIONID изменяется с помощью spring-security после успешного входа в систему), и внешний интерфейс перенаправляет обратно на страницу входа, даже если учетные данные пользователя верны. Есть ли кто-нибудь, кто пробовал ingress-nginx с spring-security?
С уважением