| | 24 | |
| | 25 | == Proxy-Instellingen == |
| | 26 | |
| | 27 | (''vanaf [wiki:/Releases/v2.002 versie 2.002]'') |
| | 28 | |
| | 29 | De proxy-instellingen van de communicatie-onderdelen |
| | 30 | die HTTP of HTTPS gebruiken, kunnen verschillend zijn (bijvoorbeeld als communicatie met de Grouper via een proxy en VECOZO via een andere proxy moet). Tot v2.000 |
| | 31 | was er maar ''een'' HTTP proxy instelling (te vinden in het versiebeheerscherm, daar genoemd ''SVN Proxy''). Die instellingen werden gebruikt voor alle HTTP en |
| | 32 | HTTPS verbindingen en zijn opgeslagen in de twee configuratievariabelen `svn_proxy` en `svn_puserpass`. Beide variabelen hebben |
| | 33 | een tweeledige waarde: proxy is een `host:port` combinatie, |
| | 34 | en puserpass is een `username:password` combinatie. Voor HTTP en HTTPS proxies |
| | 35 | zijn alle vier waarden nodig. |
| | 36 | |
| | 37 | In v2.002 is het mogelijk om meerdere configuratie-variabelen |
| | 38 | te hebben voor het instellen van HTTP proxies, of om de proxy |
| | 39 | uit te zetten in specifieke gevallen. Elke HTTP verbinding die |
| | 40 | OpenAC maakt zoekt de proxy instellingen op aan de hand van een |
| | 41 | naam. De namen zijn als volgt: |
| | 42 | - In een kernmodule, de naam `module`.`submodule` of alleen `module`. |
| | 43 | Voorbeelden zijn `d035_zorgrelatie` en `e080_vecozo.declaratie`. |
| | 44 | - Losse modules `svn`, `sms`, `fenac` en `trac`. |
| | 45 | Voor elke proxy is het mogelijk om afzonderlijk te configureren |
| | 46 | welke proxy-instellingen gebruikt moeten worden. |
| | 47 | - De proxy kan uit staan. Dan wordt er geen proxy gebruikt. |
| | 48 | - De proxy kan in een tweetal configuratie-variabelen staan, |
| | 49 | in dezelfde stijl als bij de bestaande proxy. |
| | 50 | - De proxy kan hard-coded in OpenAC ingevoerd zijn. |
| | 51 | - De proxy kan gebruik maken van de instellingen van een andere |
| | 52 | proxy. |
| | 53 | Als bij een gegeven proxy-naam geen instellingen zijn gedefinieerd, |
| | 54 | dan worden de instellingen van SVN gebruikt, net als in v2.000. |
| | 55 | |
| | 56 | De instellingen worden opgeslagen in `logica.configuratie.ProxyMap`. |
| | 57 | De default indeling van de !ProxyMap is om alles door de spelen |
| | 58 | aan de twee SVN variabelen, maar de adaptatie kan specifieke |
| | 59 | gevallen aanpassen. Die doe je door bepaalde waarden toe te kennen |
| | 60 | aan de namen in de !ProxyMap, zo: |
| | 61 | {{{ |
| | 62 | logica.configuratie.ProxyMap[proxynaam] = waarde |
| | 63 | }}} |
| | 64 | Hierbij is `proxynaam` een string om de proxy-instelling te |
| | 65 | benoemen, zoals `"e080_vecozo.declaratie"`. De waarde kan |
| | 66 | als volgt gekozen worden: |
| | 67 | - `None`, om de proxy uit te schakelen. |
| | 68 | - `("var1","var2")` met de namen van twee configuratie-variabelen |
| | 69 | waar de instellingen in moeten zitten. Deze moeten dan wel in je |
| | 70 | `config.tsv` zitten (of in de database van gedeelde variabelen). |
| | 71 | - `("host",port,"user","pass")` met de vier waarden die gebruikt |
| | 72 | moeten worden, expliciet uitgeschreven in de code. |
| | 73 | - `"proxynaam"` de naam van een andere proxy, wiens instellingen |
| | 74 | gebruikt moeten worden. |
| | 75 | Als een proxy verwijst naar een andere proxy, kan die andere uiteraard |
| | 76 | zelf weer doorverwijzen, tot er een proxy is met eigen (niet-doorverwezen) |
| | 77 | instellingen (desnoods die voor svn). |
| | 78 | |
| | 79 | Proxy-instellingen van een en dezelfde module (zoals `e080_vecozo.declaratie` |
| | 80 | en `e080_vecozo.verzekeringsrecht`) kunnen worden ingesteld op '''module''' |
| | 81 | niveau of op '''submodule''' niveau. De meest specifieke instelling telt, |
| | 82 | dus de proxy-instelling voor `e080_vecozo` wordt gebruikt voor de proxy |
| | 83 | van `e080_vecozo.declaratie` '''alleen''' als er geen eigen instellingen |
| | 84 | zijn voor die submodule. |
| | 85 | |
| | 86 | Hier is een volledig voorbeeld, dat in de `finish()` functie van de eigen adaptatie gezet zou kunnen worden: |
| | 87 | {{{ |
| | 88 | # Geen proxy voor TRAC |
| | 89 | logica.configuratie.ProxyMap["trac"] = None |
| | 90 | # Bevestig wat we over svn weten |
| | 91 | logica.configuratie.ProxyMap["svn"] = ("svn_proxy","svn_puserpass") |
| | 92 | # Upload naar FENAC gebruikt de svn instellingen |
| | 93 | logica.configuratie.ProxyMap["fenac"] = "svn" |
| | 94 | # De VECOZO (inclusief e080_vecozo.declaratie) gebruikt een vaste proxy |
| | 95 | logica.configuratie.ProxyMap["e080_vecozo"] = ("proxy.local",8080,"http","geheim") |
| | 96 | # Behalve verzekeringsrecht, dat gebruikt aparte configuratievariabelen |
| | 97 | logica.configuratie.ProxyMap["e080_vecozo.verzekeringsrecht"] = ("vecozo_proxy","vecozo_puserpass") |
| | 98 | }}} |
| | 99 | |
| | 100 | We verwachten dat het meest-gebruikte zal zijn om de proxy uit te schakelen |
| | 101 | voor specifieke verbindingen. |
| | 102 | |
| | 103 | '''NB.''' als proxy-instellingen over-en-weer naar elkaar verwijzen, ontstaat een oneindige loop. |