revprox_client_external_domainname => revprox_client_external_domainnames

This commit is contained in:
Emmanuel Garette 2022-05-23 08:49:21 +02:00
parent 428e8f4f87
commit 90bcf35f9b
11 changed files with 65 additions and 73 deletions

View file

@ -65,6 +65,7 @@
<family name="mail" description="Mail domain" leadership="True"> <family name="mail" description="Mail domain" leadership="True">
<variable name="mail_domains" type="domainname" description="Domaine de courriel géré localement" mandatory="True" multi="True"/> <variable name="mail_domains" type="domainname" description="Domaine de courriel géré localement" mandatory="True" multi="True"/>
<variable name="mail_domains_calc" type="domainname" hidden="True"/> <variable name="mail_domains_calc" type="domainname" hidden="True"/>
<variable name="mail_domains_calc_autoconfig" type="domainname" hidden="True"/>
<variable name="imap_domainname" type="domainname" mandatory="True"/> <variable name="imap_domainname" type="domainname" mandatory="True"/>
<variable name="submission_domainname" type="domainname" mandatory="True"/> <variable name="submission_domainname" type="domainname" mandatory="True"/>
</family> </family>
@ -78,7 +79,7 @@
<variable name='external_imap_key' type="filename" hidden='True' multi='True'/> <variable name='external_imap_key' type="filename" hidden='True' multi='True'/>
</family> </family>
<family name="nginx"> <family name="nginx">
<variable name="revprox_client_external_domainname" redefine="True" mandatory="False"/> <variable name="revprox_client_external_domainnames" redefine="True" mandatory="False"/>
<family name="revprox_client"> <family name="revprox_client">
<variable name="revprox_client_location" redefine="True" mandatory="False"> <variable name="revprox_client_location" redefine="True" mandatory="False">
<value/> <value/>
@ -127,6 +128,12 @@
<param type="variable">mail_domains</param> <param type="variable">mail_domains</param>
<target>mail_domains_calc</target> <target>mail_domains_calc</target>
</fill> </fill>
<fill name="calc_value">
<param>autoconfig</param>
<param type="variable">mail_domains</param>
<param name="join">.</param>
<target>mail_domains_calc_autoconfig</target>
</fill>
<fill name="calc_value"> <fill name="calc_value">
<param>/var/www/html/mail/</param> <param>/var/www/html/mail/</param>
<param type="variable">mail_domains</param> <param type="variable">mail_domains</param>
@ -136,6 +143,19 @@
<param name="multi" type="boolean">True</param> <param name="multi" type="boolean">True</param>
<target>well_known_filenames</target> <target>well_known_filenames</target>
</fill> </fill>
<check name="set_linked_multi_variables">
<param type="variable">revprox_client_server_domainname</param>
<param name="linked_provider_0">revprox_clients</param>
<param name="linked_provider_1">revprox_location</param>
<param name="linked_value_1">/mail/config-v1.1.xml</param>
<param name="linked_provider_2">revprox_is_websocket</param>
<param name="linked_value_2" type="boolean">False</param>
<param name="linked_provider_3">revprox_url</param>
<param name="linked_value_3" type="variable">well_knowns</param>
<param name="variable_index_3" type="boolean">True</param>
<param name="variable_index" type="index"/>
<target>mail_domains_calc_autoconfig</target>
</check>
<check name="set_linked_multi_variables"> <check name="set_linked_multi_variables">
<param type="variable">revprox_client_server_domainname</param> <param type="variable">revprox_client_server_domainname</param>
<param name="linked_provider_0">revprox_clients</param> <param name="linked_provider_0">revprox_clients</param>
@ -145,6 +165,8 @@
<param name="linked_value_2" type="boolean">False</param> <param name="linked_value_2" type="boolean">False</param>
<param name="linked_provider_3">revprox_url</param> <param name="linked_provider_3">revprox_url</param>
<param name="linked_value_3" type="variable">well_knowns</param> <param name="linked_value_3" type="variable">well_knowns</param>
<param name="variable_index_3" type="boolean">True</param>
<param name="variable_index" type="index"/>
<target>mail_domains_calc</target> <target>mail_domains_calc</target>
</check> </check>
<check name="set_linked_multi_variables"> <check name="set_linked_multi_variables">
@ -156,6 +178,8 @@
<param name="linked_value_2" type="boolean">False</param> <param name="linked_value_2" type="boolean">False</param>
<param name="linked_provider_3">revprox_url</param> <param name="linked_provider_3">revprox_url</param>
<param name="linked_value_3" type="variable">well_knowns</param> <param name="linked_value_3" type="variable">well_knowns</param>
<param name="variable_index_3" type="boolean">True</param>
<param name="variable_index" type="index"/>
<target>mail_domains_calc</target> <target>mail_domains_calc</target>
</check> </check>
<fill name="calc_well_known"> <fill name="calc_well_known">

View file

@ -13,7 +13,9 @@
<value>2222</value> <value>2222</value>
</variable> </variable>
<family name="gitea" description="Gitea" help="Git forge Gitea"> <family name="gitea" description="Gitea" help="Git forge Gitea">
<variable name="gitea_title" mandatory="True" description="Titre de la forge"/> <variable name="gitea_title" mandatory="True" description="Titre de la forge">
<value>Gitea: Git avec une tasse de thé</value>
</variable>
<variable name="gitea_mail_sender" type="mail" description="Les courriels sont envoyés à partir de cet adresse" mandatory="True"/> <variable name="gitea_mail_sender" type="mail" description="Les courriels sont envoyés à partir de cet adresse" mandatory="True"/>
<variable name="gitea_secret_key" type="password" hidden="True"/> <variable name="gitea_secret_key" type="password" hidden="True"/>
<variable name="gitea_internal_token" type="password" hidden="True"/> <variable name="gitea_internal_token" type="password" hidden="True"/>
@ -56,12 +58,6 @@
</family> </family>
</variables> </variables>
<constraints> <constraints>
<fill name="calc_value">
<param>Gitea: Git with a cup of tea for</param>
<param type="variable">revprox_client_external_domainname</param>
<param name="join" type="space"/>
<target>gitea_title</target>
</fill>
<fill name="get_password"> <fill name="get_password">
<param name="server_name" type="variable">domain_name_eth0</param> <param name="server_name" type="variable">domain_name_eth0</param>
<param name="username">secret_key</param> <param name="username">secret_key</param>
@ -87,7 +83,7 @@
<target>gitea_lfs_jwt_secret</target> <target>gitea_lfs_jwt_secret</target>
</fill> </fill>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable" optional="True">revprox_client_external_domainname</param> <param type="variable" optional="True">revprox_client_external_domainnames</param>
<param type="variable" optional="True">revprox_client_location</param> <param type="variable" optional="True">revprox_client_location</param>
<param>user/oauth2/</param> <param>user/oauth2/</param>
<param type="variable">domain_name_eth0</param> <param type="variable">domain_name_eth0</param>
@ -95,7 +91,7 @@
<target>oauth2_client_login</target> <target>oauth2_client_login</target>
</fill> </fill>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable">revprox_client_external_domainname</param> <param type="variable">revprox_client_external_domainnames</param>
<param type="variable">revprox_client_location</param> <param type="variable">revprox_client_location</param>
<param>user/oauth2/</param> <param>user/oauth2/</param>
<param type="variable">domain_name_eth0</param> <param type="variable">domain_name_eth0</param>

View file

@ -60,7 +60,7 @@
<target>postorius_secret_key</target> <target>postorius_secret_key</target>
</fill> </fill>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable">revprox_client_external_domainname</param> <param type="variable">revprox_client_external_domainnames</param>
<param type="variable">revprox_client_location</param> <param type="variable">revprox_client_location</param>
<param>/accounts/risotto/login/</param> <param>/accounts/risotto/login/</param>
<target>oauth2_client_external</target> <target>oauth2_client_external</target>

View file

@ -65,7 +65,7 @@
<target>nextcloud_instance_id</target> <target>nextcloud_instance_id</target>
</fill> </fill>
<fill name="calc_value"> <fill name="calc_value">
<param type="variable">revprox_client_external_domainname</param> <param type="variable">revprox_client_external_domainnames</param>
<target>nextcloud_well_known_server</target> <target>nextcloud_well_known_server</target>
</fill> </fill>
<check name="set_linked_multi_variables"> <check name="set_linked_multi_variables">

View file

@ -8,8 +8,8 @@
</variable> </variable>
<variable name="oauth2_client_name" description="OAuth2 client name" mandatory='True'/> <variable name="oauth2_client_name" description="OAuth2 client name" mandatory='True'/>
<variable name="oauth2_client_description" description="OAuth2 client description" mandatory='True'/> <variable name="oauth2_client_description" description="OAuth2 client description" mandatory='True'/>
<variable name="oauth2_client_login" type="web_address" description="OAuth2 URL to valid login"/> <variable name="oauth2_client_login" type="web_address" description="OAuth2 URL to valid login" multi="True"/>
<variable name="oauth2_client_external" type="web_address" description="OAuth2 client external" mandatory='True'/> <variable name="oauth2_client_external" type="web_address" description="OAuth2 client external" mandatory='True' multi="True"/>
<variable name="oauth2_client_category" description="OAuth2 category" mandatory='True'> <variable name="oauth2_client_category" description="OAuth2 category" mandatory='True'>
<value>Défaut</value> <value>Défaut</value>
</variable> </variable>
@ -87,7 +87,7 @@
<target>oauth2_client_token_signature_algo</target> <target>oauth2_client_token_signature_algo</target>
</check> </check>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable" optional="True">revprox_client_external_domainname</param> <param type="variable" optional="True">revprox_client_external_domainnames</param>
<param type="variable" optional="True">revprox_client_location</param> <param type="variable" optional="True">revprox_client_location</param>
<target>oauth2_client_external</target> <target>oauth2_client_external</target>
</fill> </fill>

View file

@ -51,7 +51,7 @@
</variables> </variables>
<constraints> <constraints>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable">revprox_client_external_domainname</param> <param type="variable">revprox_client_external_domainnames</param>
<param type="variable">revprox_client_location</param> <param type="variable">revprox_client_location</param>
<param>plugins/auth-openid-connect/0.0.7/auth/openid-connect</param> <param>plugins/auth-openid-connect/0.0.7/auth/openid-connect</param>
<target>oauth2_client_external</target> <target>oauth2_client_external</target>

View file

@ -51,7 +51,7 @@
</variables> </variables>
<constraints> <constraints>
<fill name="calc_oauth2_client_external"> <fill name="calc_oauth2_client_external">
<param type="variable">revprox_client_external_domainname</param> <param type="variable">revprox_client_external_domainnames</param>
<param type="variable">revprox_client_location</param> <param type="variable">revprox_client_location</param>
<param>plugins/auth-openid-connect/0.0.7/auth/openid-connect</param> <param>plugins/auth-openid-connect/0.0.7/auth/openid-connect</param>
<target>oauth2_client_external</target> <target>oauth2_client_external</target>

View file

@ -319,7 +319,7 @@ IgnoreAuthenticatedClients true
# #
# RejectFailures false # RejectFailures false
#>GNUNUX #>GNUNUX
RejectFailures true #FIXME RejectFailures true
#<GNUNUX #<GNUNUX
## RejectMultiValueFrom { true | false } ## RejectMultiValueFrom { true | false }

View file

@ -10,7 +10,8 @@
<family name="nginx" description="Reverse proxy"> <family name="nginx" description="Reverse proxy">
<variable name="revprox_client_server_domainname" type="domainname" description="Nom de domaine du serveur mandataire inverse" mandatory='True'/> <variable name="revprox_client_server_domainname" type="domainname" description="Nom de domaine du serveur mandataire inverse" mandatory='True'/>
<variable name="revprox_client_server_ip" type="ip" hidden='True'/> <variable name="revprox_client_server_ip" type="ip" hidden='True'/>
<variable name="revprox_client_external_domainname" type="domainname" description="Nom de domaine exterieur du serveur" mandatory='True' provider="external_domainname"/> <variable name="revprox_client_external_domainnames" type="domainname" description="Nom de domaine exterieur du serveur" mandatory='True' multi="True"/>
<variable name="revprox_client_external_domainname" type="domainname" provider="external_domainname" hidden="True"/>
<family name="revprox_client" description="Point d'entré des clients" leadership="True"> <family name="revprox_client" description="Point d'entré des clients" leadership="True">
<variable name="revprox_client_location" type="filename" description="Nom de l'arborescence racine du site" mandatory="True" multi="True"> <variable name="revprox_client_location" type="filename" description="Nom de l'arborescence racine du site" mandatory="True" multi="True">
<value>/</value> <value>/</value>
@ -36,6 +37,10 @@
</family> </family>
</variables> </variables>
<constraints> <constraints>
<fill name="get_first_value">
<param type="variable">revprox_client_external_domainnames</param>
<target>revprox_client_external_domainname</target>
</fill>
<fill name="calc_web_address"> <fill name="calc_web_address">
<param type="variable">domain_name_eth0</param> <param type="variable">domain_name_eth0</param>
<param type="variable">revprox_client_port</param> <param type="variable">revprox_client_port</param>
@ -54,43 +59,23 @@
<param name="join">/</param> <param name="join">/</param>
<target>revprox_key_file</target> <target>revprox_key_file</target>
</fill> </fill>
<fill name="set_linked"> <fill name="set_linked_multi_variables">
<param name="linked_server" type="variable">revprox_client_server_domainname</param> <param type="variable">revprox_client_server_domainname</param>
<param name="linked_provider">revprox_clients</param> <param name="linked_provider_0">revprox_clients</param>
<param name="linked_value" type="variable">revprox_client_external_domainname</param> <param name="linked_value_0" type="variable">revprox_client_external_domainnames</param>
<param name="linked_returns">ip</param> <param name="linked_provider_1">revprox_location</param>
<param name="dynamic">0</param> <param name="linked_value_1" type="variable">revprox_client_location</param>
<param name="linked_provider_2">revprox_is_websocket</param>
<param name="linked_value_2" type="variable">revprox_client_is_websocket</param>
<param name="linked_provider_3">revprox_max_body_size</param>
<param name="linked_value_3" type="variable">revprox_client_max_body_size</param>
<param name="linked_provider_4">revprox_url</param>
<param name="linked_value_4" type="variable">revprox_client_web_address</param>
<target>revprox_client_server_ip</target> <target>revprox_client_server_ip</target>
</fill> </fill>
<check name="set_linked_configuration"> <!--fill name="get_ip_from_domain">
<param name="linked_server" type="variable">revprox_client_server_domainname</param> <param type="variable">revprox_client_server_domainname</param>
<param name="linked_provider">revprox_location</param> <target>revprox_client_server_ip</target>
<param name="dynamic" type="variable">revprox_client_external_domainname</param> </fill-->
<target>revprox_client_location</target>
</check>
<check name="set_linked_configuration">
<param name="linked_server" type="variable">revprox_client_server_domainname</param>
<param name="linked_provider">revprox_is_websocket</param>
<param name="dynamic" type="variable">revprox_client_external_domainname</param>
<param name="leader_provider">revprox_location</param>
<param name="leader_value" type="variable">revprox_client_location</param>
<target>revprox_client_is_websocket</target>
</check>
<check name="set_linked_configuration">
<param name="linked_server" type="variable">revprox_client_server_domainname</param>
<param name="linked_provider">revprox_max_body_size</param>
<param name="dynamic" type="variable">revprox_client_external_domainname</param>
<param name="leader_provider">revprox_location</param>
<param name="leader_value" type="variable">revprox_client_location</param>
<target>revprox_client_max_body_size</target>
</check>
<check name="set_linked_configuration">
<param name="linked_server" type="variable">revprox_client_server_domainname</param>
<param name="linked_provider">revprox_url</param>
<param name="leader_provider">revprox_location</param>
<param name="leader_value" type="variable">revprox_client_location</param>
<param name="dynamic" type="variable">revprox_client_external_domainname</param>
<target>revprox_client_web_address</target>
</check>
</constraints> </constraints>
</rougail> </rougail>

View file

@ -7,3 +7,8 @@ def calc_web_address(domain_name: str, port: str, local_location: str) -> str:
if local_location: if local_location:
web_address += local_location web_address += local_location
return web_address return web_address
def get_first_value(lst: list):
if lst:
return lst[0]

View file

@ -14,10 +14,6 @@
<variables> <variables>
<family name="roundcube" description="Interface web de consultation des courriels Roundcube"> <family name="roundcube" description="Interface web de consultation des courriels Roundcube">
<variable name="roundcube_des_key" type="secret" auto_freeze="True" hidden="True"/> <variable name="roundcube_des_key" type="secret" auto_freeze="True" hidden="True"/>
<family name="domaines" description="Noms de domaine extérieur" leadership="True">
<variable name="revprox_client_external_domainnames" multi="True" description="Nom de domaine"/>
<variable name="ldap_family" description="Nom de la famille LDAP"/>
</family>
</family> </family>
<family name="oauth2_client"> <family name="oauth2_client">
<variable name="oauth2_is_client_application" redefine='True'> <variable name="oauth2_is_client_application" redefine='True'>
@ -38,7 +34,6 @@
<variable name="oauth2_client_external" redefine="True" multi='True'/> <variable name="oauth2_client_external" redefine="True" multi='True'/>
</family> </family>
<family name="nginx"> <family name="nginx">
<variable name="revprox_client_external_domainname" redefine="True" mandatory="False" hidden="True"/>
<variable name="nginx_root" redefine="True"> <variable name="nginx_root" redefine="True">
<value>/usr/share/roundcubemail/</value> <value>/usr/share/roundcubemail/</value>
</variable> </variable>
@ -55,18 +50,5 @@
<param name="type">cleartext</param> <param name="type">cleartext</param>
<target>roundcube_des_key</target> <target>roundcube_des_key</target>
</fill> </fill>
<fill name="calc_oauth2_client_external">
<param type="variable" optional="True">revprox_client_external_domainnames</param>
<param type="variable" optional="True">revprox_client_location</param>
<param>index.php/login/oauth</param>
<target>oauth2_client_external</target>
</fill>
<check name="set_linked_configuration">
<param name="linked_value">all</param>
<param name="linked_server" type="variable">ldap_server_address</param>
<param name="linked_provider">client_family</param>
<param name="dynamic" type="variable">domain_name_eth0</param>
<target>ldap_family</target>
</check>
</constraints> </constraints>
</rougail> </rougail>