TL; āĻĄāĻŋāĻāĻ°: āĻā§āĻā§āĻ˛ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĨāĻžāĻāĻŦā§, āĻāĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
āĻā§āĻŽāĻŋāĻāĻž āĻāĻŦāĻ āĻŽā§āĻ˛ āĻ§āĻžāĻ°āĻŖāĻž
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž Kubernetes-āĻāĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ Keycloak āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻŦāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ Keycloak āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻāĻžāĻ¨āĻ¤ā§ āĻāĻžāĻ¨, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻļā§āĻˇā§ āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§āĻ¨āĨ¤ āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻ°āĻ āĻ¨āĻŋāĻŽāĻā§āĻ¨ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻ
āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻā§āĻ˛ā§āĻ āĻšāĻ˛ āĻāĻžāĻāĻžāĻ¤ā§ āĻ˛ā§āĻāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤
āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻžāĻ¨āĻžāĻ
āĻā§āĻā§āĻ˛ā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻā§āĻā§
Keycloak āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻĄā§āĻāĻž āĻā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻŋāĻ¤ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¤āĻĨā§āĻ¯
- āĻĄā§āĻāĻžāĻā§āĻ°āĻŋāĻĄ āĻā§āĻ¯āĻžāĻļā§, āĻ¯āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻ˛ā§āĻĒāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ āĻāĻŦāĻ āĻāĻ¨ āĻāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¯ā§āĻŽāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤
āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ , āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻĻā§āĻ°ā§āĻ¤āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻžāĻ āĻšā§āĻ āĻ¨āĻž āĻā§āĻ¨, āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĄā§āĻāĻž āĻā§āĻˇāĻŖāĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§ - āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻšāĻ˛ā§ āĻāĻāĻŋ āĻā§āĻĨāĻžāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻā§āĻā§āĻ˛ā§āĻ āĻāĻžāĻ°āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāĻ°ā§:
- āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ - āĻāĻāĻāĻŋ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ standalone.xml
- āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° (āĻāĻā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ) - āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ standalone-ha.xml, āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§.
- āĻĄā§āĻŽā§āĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° â āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻŽā§āĻĄā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ°ā§āĻāĻŋāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻ°āĻā§āĻ¤āĻŋāĻāĻ° āĻāĻžāĻ āĻšāĻ¯āĻŧā§ āĻāĻ ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻāĨ¤ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĄā§āĻŽā§āĻ¨ āĻŽā§āĻĄ āĻāĻŋāĻā§ āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ domain.xml
- āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ â āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ Keycloak āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨, āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻāĻ˛āĻŋāĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§āĨ¤ āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻā§āĻā§āĻ˛ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒ, āĻ¯ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻž āĻā§āĻ¨ā§āĻĻā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ āĻāĻāĻā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻā§ āĻāĻ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻŦā§āĻ§āĻāĻŽā§āĻ¯āĨ¤ āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻĄ (āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄ) āĻāĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§āĻ, āĻ¤āĻžāĻ āĻĄā§āĻŽā§āĻāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻāĻž āĻāĻ°āĻž āĻā§āĻŦ āĻāĻ āĻŋāĻ¨ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻļāĻŦā§āĻĻ āĻā§āĻā§āĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻŦāĻžāĻāĻŋ āĻ āĻāĻļāĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻ¤ā§āĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻž āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻšāĻŦā§, āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻā§āĻā§āĻ˛ā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°
āĻāĻ āĻŽā§āĻĄā§ āĻā§āĻā§āĻ˛ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻāĻžāĻ āĻāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
- āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
- IP āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻā§
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻ¨āĻ¯āĻŧāĨ¤ āĻ§āĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻā§āĻĨāĻžāĻ āĻāĻāĻāĻŋ āĻāĻ°ā§āĻŽāĻ°āĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻā§ - āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻāĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻ˛ āĻāĻ āĻ¤āĻĨā§āĻ¯āĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŦāĨ¤
āĻāĻāĻāĻŋ āĻĢā§āĻāĻ˛āĻāĻāĻžāĻ° (HA) āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻā§āĻā§āĻ˛ā§āĻ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻāĻ°āĻ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻĢā§āĻ˛āĻžāĻāĻ¯āĻŧā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻŋāĻ āĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻāĻ¤āĻāĻž āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻāĻžāĻ¨āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤
āĻāĻ¯āĻŧāĻžāĻāĻ˛ā§āĻĄāĻĢā§āĻ˛āĻžāĻ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻā§ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŋāĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄ āĻāĻāĻžāĻ°āĻ˛ā§āĻĄ āĻšāĻ˛ā§ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ:
-
mod_cluster
: āĻāĻāĻāĻŋ HTTP āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ Apache āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°ā§ āĻāĻžāĻ āĻāĻ°ā§, āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻšā§āĻ¸ā§āĻ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ TCP āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻ¸āĻā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§. -
infinispan
: āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ JGroups āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻā§āĻ¯āĻžāĻļā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ HotRod āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ -
jgroups
: JGroups āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻĒ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¨āĻžāĻŽāĻ¯ā§āĻā§āĻ¤ āĻĒāĻžāĻāĻĒāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ°ā§āĻĒā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž, āĻ¸ā§āĻļā§āĻā§āĻāĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻĨāĻžāĻā§āĨ¤
āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ:
Keycloak āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°ā§ āĻ¯ā§ HTTP āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻšāĻ˛ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¸āĻ˛ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĨ¤ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻŦāĻ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ HTTP āĻšā§āĻĄāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ X-Forwarded-For
и X-Forwarded-Proto
, āĻāĻŦāĻ āĻŽā§āĻ˛ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨ HOST
. āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ ingress-nginx
(>0.22.0)
āĻĒāĻ¤āĻžāĻāĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻā§āĻā§ proxy-address-forwarding
āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§ PROXY_ADDRESS_FORWARDING
в true
āĻā§āĻā§āĻ˛ā§āĻāĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻāĻžāĻ āĻāĻ°āĻā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¸ā§āĻāĻŋāĻāĻŋ āĻ¸ā§āĻļāĻ¨ āĻĒā§āĻ°āĻŦā§āĻļ āĻā§āĻā§āĻ˛ā§āĻ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸ā§āĻļāĻ¨ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ¯āĻžāĻļā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻā§āĻ¯āĻžāĻļā§āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻāĻāĻ āĻŽāĻžāĻ˛āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¸ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻļāĻ¨āĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻŋāĻā§ āĻ¨ā§āĻĄā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻ āĻ¸ā§āĻļāĻ¨ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§ āĻ¤āĻž āĻĻā§āĻ° āĻĨā§āĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§, āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻā§āĻāĻŋ āĻ¨āĻžāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻļāĻ¨ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§āĻ¨āĻŋ
AUTH_SESSION_ID
. āĻā§āĻā§āĻ˛ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻŋāĻāĻŋ āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻāĻŋāĻ° āĻ¨āĻžāĻŽ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻāĨ¤
āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻ¨āĻžāĻŽāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛ AUTH_SESSION_ID
, āĻāĻŦāĻ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ
āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄ āĻāĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ JAVA_OPTS
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ jboss.node.name
и jboss.tx.node.id
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨āĻ¨ā§āĻ¯ - āĻāĻĒāĻ¨āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒāĻĄā§āĻ° āĻ¨āĻžāĻŽ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻĄ āĻ¨āĻžāĻŽ āĻ°āĻžāĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ jboss āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ 23 āĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ StatefulSet āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻ°ā§āĻ - āĻ¯āĻĻāĻŋ āĻĒāĻĄāĻāĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻ° āĻā§āĻ¯āĻžāĻļā§ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ¯āĻžāĻļā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻļā§ āĻŽāĻžāĻ˛āĻŋāĻāĻĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽāĻĒāĻā§āĻˇā§ āĻĻā§āĻāĻŋāĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻ¯āĻžāĻ¤ā§ āĻā§āĻ¯āĻžāĻļā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĨāĻžāĻā§āĨ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻ˛ āĻāĻžāĻ˛āĻžāĻ¨ā§ /opt/jboss/startup-scripts
āĻĒāĻžāĻ¤ā§āĻ°ā§:
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§
embed-server --server-config=standalone-ha.xml --std-out=echo
batch
echo * Setting CACHE_OWNERS to "${env.CACHE_OWNERS}" in all cache-containers
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=owners, value=${env.CACHE_OWNERS:1})
run-batch
stop-embedded-server
āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ CACHE_OWNERS
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§
āĻāĻāĻĒāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻāĻ¨āĻāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ¯āĻŧā§āĻā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§ - āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛ā§ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻāĻĒāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻž āĻĨāĻžāĻāĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ JGroups āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ KUBE_DNS
āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ headless service
āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛ JGroups-āĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻ¨ āĻ¯āĻž āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ KUBE_PING
, āĻ¯āĻž āĻ¨ā§āĻĄ āĻ
āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ API āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ (āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ serviceAccount
āĻ
āĻ§āĻŋāĻāĻžāĻ° āĻ¸āĻš list
и get
, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻĄāĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ serviceAccount
).
JGroups āĻ¯ā§āĻāĻžāĻŦā§ āĻ¨ā§āĻĄ āĻā§āĻāĻā§ āĻĒāĻžāĻ¯āĻŧ āĻ¤āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ JGROUPS_DISCOVERY_PROTOCOL
и JGROUPS_DISCOVERY_PROPERTIES
āĨ¤ āĻāĻ¨ā§āĻ¯ KUBE_PING
āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ āĻĒāĻĄ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ namespace
и labels
.
ī¸ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻĻā§āĻāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻā§āĻā§āĻ˛ā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ (āĻāĻ¸ā§āĻ¨ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŦāĻ˛āĻŋ
production
, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ -staging
) - āĻāĻāĻāĻŋ āĻā§āĻā§āĻ˛ā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¨ā§āĻĄ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻžjboss.default.multicast.address
иjboss.modcluster.multicast.address
вJAVA_OPTS
.
āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ
āĻ˛āĻŋāĻāĻ
Keycloak āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻĨāĻ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ¯āĻžāĻļā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ Keycloak āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤ Keycloack āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¨ā§āĻāĨ¤
āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻāĻžāĻāĻž āĻĄā§āĻāĻž āĻā§āĻ°āĻŋāĻĄ (āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°ā§
āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ¯āĻžāĻļā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ remoteStore
, āĻ¯āĻžāĻ¤ā§ āĻĄā§āĻāĻž āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§āĻāĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ (āĻ
āĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§, āĻĒā§āĻ°āĻžāĻ¯āĻŧ. āĻ
āĻ¨ā§āĻŦāĻžāĻĻāĻ) āĻā§āĻ¯āĻžāĻļā§āĨ¤ JDG āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻĨāĻ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ¤ā§ āĻ¸āĻžāĻāĻā§ JDG1-āĻ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ site1
āĻ¸āĻžāĻāĻā§ JDG2 āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻŦā§ site2
.
āĻāĻŦāĻ āĻ
āĻŦāĻļā§āĻˇā§, āĻā§āĻ°āĻšāĻ¨āĻāĻžāĻ°ā§ JDG āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¤āĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻā§āĻā§āĻ˛ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ
āĻŦāĻšāĻŋāĻ¤ āĻāĻ°ā§, āĻ¯āĻž HotRod āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĨ¤ āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄ āĻāĻžāĻ˛ā§ āĻāĻā§ site2
āĻ¤āĻžāĻĻā§āĻ° Infinispan āĻā§āĻ¯āĻžāĻļā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨āĻāĻŋ āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§āĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻŦā§ site2
.
āĻāĻŋāĻā§ āĻā§āĻ¯āĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŦā§āĻ¯āĻžāĻāĻāĻĒ āĻ¨āĻž āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻ˛ā§āĻāĻž āĻāĻĄāĻŧāĻžāĻ¨ā§āĻ āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻāĻŋāĻāĻ¸āĻāĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻĢā§āĻ˛āĻ¤ā§ āĻšāĻŦā§ remote-store
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ¯āĻžāĻļā§ (āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ standalone-ha.xml), āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ replicated-cache
āĻāĻāĻžāĻĄāĻŧāĻžāĻ Infinispan āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻžāĻāĻĄā§ āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻā§āĻ¯āĻžāĻļā§ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻā§āĻā§āĻ˛ā§āĻā§ āĻĻā§āĻāĻŋ āĻ§āĻ°āĻŖā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻ°āĻ¯āĻŧā§āĻā§:
-
āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĒāĻžāĻļā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ˛ā§āĻĄ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻāĻŽāĻžāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻ°āĻžāĻā§āĻ¯, āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ, āĻā§āĻŽāĻŋāĻāĻž āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻāĻāĻāĻŋ Keycloak āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻāĻļ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻĨā§āĻā§ āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĻā§āĻā§āĻ¨
work
āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§ āĻĻā§āĻā§āĻ¨āĨ¤ -
āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻā§āĻ¤āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨, āĻ āĻĢāĻ˛āĻžāĻāĻ¨ āĻā§āĻā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĢāĻŋāĻļāĻŋāĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻā§āĻ°āĻŽāĻŖ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ˛āĻāĻāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°ā§ā§ˇ āĻāĻ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĄā§āĻāĻž āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° RAM āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻā§āĻĄāĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ¯āĻžāĻļā§
āĻ¸ā§āĻļāĻ¨āĻ¸ - āĻā§āĻā§āĻ˛ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻŖāĻž, āĻāĻ˛āĻžāĻĻāĻž āĻā§āĻ¯āĻžāĻļā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ authenticationSessions
, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻļā§āĻā§āĻ˛āĻŋāĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻŦāĻ āĻā§āĻā§āĻ˛ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻ¯āĻŧā§ˇ āĻāĻāĻžāĻ¨ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻŋ āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻļā§āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŽāĻ¨āĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ-āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŽā§āĻĄā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻāĨ¤
āĻ
ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻā§āĻā§āĻ¨. āĻāĻ°ā§āĻāĻāĻŋ āĻ§āĻžāĻ°āĻŖāĻž, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŽā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ
āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§ āĻāĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ forget password
āĻā§āĻ¯āĻžāĻļā§ actionTokens
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻā§āĻā§āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻŦāĻžāĻ° āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻ¸āĻā§āĻāĻŋāĻ¤ āĻĄā§āĻāĻž āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻāĻŦāĻ āĻŦāĻžāĻ°ā§āĻ§āĻā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ˛ā§āĻĄ āĻāĻĒāĻļāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ˛ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§, āĻ
āĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ
āĻŦāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯āĻžāĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻā§āĻā§āĻ˛ā§āĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ¯āĻžāĻļā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ realms
, users
и authorization
āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āĻ¯āĻžāĻļā§ āĻāĻā§ work
, āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ° āĻā§āĻĄāĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻā§āĻ¨ā§ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĄā§āĻāĻž āĻŦāĻžāĻ°ā§āĻ§āĻā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻā§āĻā§āĻ˛ā§āĻ āĻ¨ā§āĻĄ āĻ¤āĻžāĻ° āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨ā§āĻĄ āĻ¤āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĄā§āĻāĻž āĻ¸āĻžāĻĢ āĻāĻ°ā§āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨. āĻ¨āĻžāĻŽ āĻ¸āĻš āĻā§āĻ¯āĻžāĻļā§ sessions
, clientSessions
, offlineSessions
и offlineClientSessions
, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻāĻžāĻāĻžāĻ˛ā§āĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§āĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻļā§āĻā§āĻ˛āĻŋ āĻļā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° HTTP āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻāĻŋāĻāĻŋ āĻ¸ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻā§āĻ¨ā§āĻĻā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻā§ˇ
āĻĒāĻžāĻļāĻŦāĻŋāĻ āĻŦāĻ˛ āĻ¸ā§āĻ°āĻā§āĻˇāĻž. āĻā§āĻ¯āĻžāĻļā§ loginFailures
āĻ˛āĻāĻāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĄā§āĻāĻž āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻ¤āĻŦāĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ˛ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ āĻā§āĻ¯āĻžāĻļā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻā§āĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ
āĻ¨ā§āĻ¯āĻĻāĻŋāĻā§, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ āĻĄā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻŦā§āĻ¨ āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻāĻā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
<replicated-cache-configuration name="keycloak-sessions" mode="ASYNC" start="EAGER" batching="false">
</replicated-cache-configuration>
<replicated-cache name="work" configuration="keycloak-sessions" />
<replicated-cache name="sessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineSessions" configuration="keycloak-sessions" />
<replicated-cache name="actionTokens" configuration="keycloak-sessions" />
<replicated-cache name="loginFailures" configuration="keycloak-sessions" />
<replicated-cache name="clientSessions" configuration="keycloak-sessions" />
<replicated-cache name="offlineClientSessions" configuration="keycloak-sessions" />
āĻā§āĻā§āĻ˛ā§āĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ¨āĻĢāĻŋāĻ¨āĻŋāĻ¸ā§āĻĒā§āĻ¯āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ remoteStore
Keycloak āĻā§āĻ¯āĻžāĻļā§ āĻāĻ¨ā§āĻ¯. āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻ āĻ¯āĻĨā§āĻˇā§āĻ, āĻ¯āĻž āĻāĻā§āĻ°āĻāĻŋāĻ° āĻŽāĻ¤ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ CACHE_OWNERS
, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ /opt/jboss/startup-scripts
:
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§
embed-server --server-config=standalone-ha.xml --std-out=echo
batch
echo *** Update infinispan subsystem ***
/subsystem=infinispan/cache-container=keycloak:write-attribute(name=module, value=org.keycloak.keycloak-model-infinispan)
echo ** Add remote socket binding to infinispan server **
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-cache:add(host=${remote.cache.host:localhost}, port=${remote.cache.port:11222})
echo ** Update replicated-cache work element **
/subsystem=infinispan/cache-container=keycloak/replicated-cache=work/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=work,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/replicated-cache=work:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache sessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=sessions,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=sessions:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache offlineSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=offlineSessions,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineSessions:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache clientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=clientSessions,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=clientSessions:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache offlineClientSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=offlineClientSessions,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=offlineClientSessions:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache loginFailures element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
remote-servers=["remote-cache"],
cache=loginFailures,
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=loginFailures:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache actionTokens element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens/store=remote:add(
passivation=false,
fetch-state=false,
purge=false,
preload=false,
shared=true,
cache=actionTokens,
remote-servers=["remote-cache"],
properties={
rawValues=true,
marshaller=org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory,
protocolVersion=${keycloak.connectionsInfinispan.hotrodProtocolVersion}
}
)
/subsystem=infinispan/cache-container=keycloak/distributed-cache=actionTokens:write-attribute(name=statistics-enabled,value=true)
echo ** Update distributed-cache authenticationSessions element **
/subsystem=infinispan/cache-container=keycloak/distributed-cache=authenticationSessions:write-attribute(name=statistics-enabled,value=true)
echo *** Update undertow subsystem ***
/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=proxy-address-forwarding,value=true)
run-batch
stop-embedded-server
āĻāĻ¨ā§āĻ¸āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž JAVA_OPTS
HotRod āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ Keycloak āĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯: remote.cache.host
, remote.cache.port
āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ jboss.site.name
.
āĻ˛āĻŋāĻā§āĻ āĻāĻŦāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨
https://www.keycloak.org/docs/latest/server_installation/index.html https://docs.wildfly.org/17/High_Availability_Guide.html#cluster-configuration https://infinispan.org/docs/9.4.x/user_guide/user_guide.html https://hub.docker.com/r/jboss/keycloak https://hub.docker.com/r/jboss/infinispan
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻŦāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻ¤ā§āĻ¸: www.habr.com