4.6. Konfigurace Elza
Konfigurace aplikace Elza je standardně uložena v souboru
elza.yaml (případně elza-ui.yaml) v závislosti
na distribuci aplikace. Soubor obsahuje definici databázového připojení,
nastavení pracovního adresáře a některá další nastavení.
Konfigurace je soubor ve formátu YAML.
4.6.1. Příklad
Příklad konfigurace
#
# Port and binding address for HTTP
#
# server:
# Network address to which the server should bind.
# By default, the value is set to 0.0.0.0 which
# allows connection via all IPv4 addresses.
# address:
#
# Server HTTP port. Default port is 8080.
# port: 8080
#
# Access log for incoming HTTP requests. Disabled by default.
# The 'directory' must be set, otherwise logs are written to a
# temporary server directory. See "Přístupové logy (access log)".
# tomcat:
# accesslog:
# enabled: true
# directory: ${elza.workingDir}/log
# pattern: "%h %{X-Forwarded-For}i %l %u %t \"%r\" %s %b %{ms}T"
# buffered: false
#
elza:
data:
# Nastaveni DB
url: <dbURL>
user: <dbUser>
pass: <dbPass>
attachment:
# Konfigurace mimetypu pro editaci souboru
mimeDefs:
- mimeType: text/plain
editable: true
# Generatory pro jednotlive typy souboru
generators:
- outputMimeType: application/pdf
command: txt2pdf {2} {4}
outputFileName: result.pdf
spring:
jpa:
properties:
hibernate:
<dbDialect>
4.6.2. Nastavení webového serveru
Pokud je aplikace spuštěna samostatně, je možné nastavit port pro příjem HTTP požadavků. Výchozí port je 8080.
Popis možností nastavení portů, adresy serveru a další možnosti týkající se HTTP komunikace jsou popsány v dokumentaci: Server properties.
Ukázka nastavení pro spuštění serveru na portu 8088:
server:
port: 8088
Pokročilé nastavení serveru
V rámci nastavení serveru je možné nastavit i pokročilé parametry, například:
pojmenování sessionn cookie (
server.servlet.session.cookie.name)maximální délka session (
server.servlet.session.timeout)požadavek na zabezpečené spojení (
server.servlet.session.cookie.secure)maximální počet vláken pro zpracování požadavků (
server.tomcat.threads.max)
Přístupové logy (access log)
Aplikace umí zaznamenávat příchozí HTTP požadavky do tzv. přístupového logu (access log) vestavěného serveru Tomcat. Do logu se pro každý požadavek zapíše jeden řádek – IP adresa klienta, čas, metoda a URL požadavku, návratový kód, velikost odpovědi a doba zpracování. Přístupový log je ve výchozím stavu vypnutý.
Zapnutí se provádí v sekci server.tomcat.accesslog. Kromě vlastního
zapnutí je nutné nastavit i cílový adresář (directory). Pokud
adresář neuvedete, Tomcat zapisuje logy do dočasného adresáře serveru
(/tmp/tomcat.<port>.<...>/logs) a v pracovním adresáři aplikace se
tak žádný soubor neobjeví. Doporučujeme použít stejný adresář jako ostatní
logy aplikace, tj. ${elza.workingDir}/log.
Příklad kompletního nastavení:
server:
tomcat:
accesslog:
enabled: true
directory: ${elza.workingDir}/log
prefix: access_log
suffix: .log
file-date-format: .yyyy-MM-dd
pattern: "%h %{X-Forwarded-For}i %l %u %t \"%r\" %s %b %{ms}T"
buffered: false
rotate: true
Po úpravě konfigurace je nutné aplikaci restartovat. Výsledný soubor má název
ve tvaru access_log.RRRR-MM-DD.log a je uložen v adresáři
work/log vedle souborů elza.log a siem.log.
Význam jednotlivých parametrů:
enabled- zapnutí/vypnutí přístupového logu (true/false)
directory- adresář pro ukládání logů. Relativní cesta se vztahuje k dočasnému adresáři serveru, proto doporučujeme uvést absolutní cestu, resp.${elza.workingDir}/log.
prefix,suffix- předpona a přípona jména souboru
file-date-format- formát data v názvu souboru; zároveň určuje frekvenci rotace (denní rotace při hodnotě.yyyy-MM-dd)
pattern- formát řádku logu (viz níže)
buffered- vyrovnávací paměť zápisu. Hodnotafalsezapisuje záznamy okamžitě (vhodné pro sledování v reálném čase),trueje výkonnější při vysokém zatížení.
rotate- povolení rotace souborů podle data
Formát záznamu (pattern)
Formát řádku se nastavuje pomocí zástupných znaků serveru Tomcat. Ve výše uvedeném příkladu jsou použity:
%h- IP adresa klienta (u požadavků přes reverzní proxy jde o adresu proxy)
%{X-Forwarded-For}i- původní IP adresa klienta z hlavičkyX-Forwarded-For(vyplněna při přístupu přes reverzní proxy)
%l- identita klienta (obvykle nevyplněno, „-„)
%u- uživatel ověřený na úrovni servletového kontejneru (viz poznámka)
%t- datum a čas požadavku
%r- první řádek požadavku (metoda, URL, verze protokolu)
%s- stavový kód HTTP odpovědi
%b- velikost odpovědi v bajtech
%{ms}T- doba zpracování požadavku v milisekundách
Kompletní seznam zástupných znaků je v dokumentaci
Tomcat Access Log Valve,
popis parametrů server.tomcat.accesslog.* v dokumentaci
Spring Boot – Server properties.
Poznámka
Zástupný znak %D uvádí dobu zpracování v mikrosekundách
(Tomcat 10.1), pro čitelnost je proto v příkladu použit %{ms}T
(milisekundy).
Poznámka
Do pole %u se zapisuje pouze uživatel ověřený na úrovni
servletového kontejneru. Při přihlašování přes Kerberos/SSO nebo při
interním přihlášení Elza zůstává toto pole prázdné („-„). Pro auditování
činnosti konkrétních uživatelů slouží aplikační logy elza.log a
siem.log.
4.6.3. Nastavení databáze
Konfigurace databáze se provádí v sekci elza.data.
Nastavení se skládá ze tří částí:
url- připojení k databázi, formát je dle dokumentace JDBC ovladače
user- uživatelské jméno
pass- heslo pro připojení k databázi
4.6.4. Přílohy
Konfigurace příloh se provádí v sekci elza.attachment.
Konfigurace slouží k definici typů příloh, určení, které mohou uživatelé přímo v aplikaci editovat a případné nastavení generátorů pro převod do cílových formátů.
Sekce mimeDefs definuje typy souborů. Každý typ se konfiguruje
pomocí těchto atributů:
mimeType- mime-type přílohy
editable- příznak, zda je typ editovatelný
generators- seznam generátorů, které umožňují převod daného formátu do jiného
Generátor a jeho konfigurace
Generátorem se rozumí konfigurace externí aplikace, která umožňuje převod souboru do jiného formátu. Konfigurace generátoru se skládá ze tří částí:
outputMimeType- výstupní formát generátoru (například:application/pdf)
command- příkaz, který je spuštěn pro provedení transformace
outputFileName- jméno souboru, který obsahuje výsledek transformace
Příkaz může být parametrizován. Parametry uvedené ve složených závorkách jsou zaměněny za příslušné argumenty. Číslování argumentů je od nuly.
- Dostupné argumenty:
{0}- plná cesta do pracovního adresáře{1}- jméno vstupního souboru{2}- jméno vstupního souboru včetně úplné cesty{3}- jméno výstupního souboru{4}- jméno výstupního souboru včetně úplné cesty
4.6.5. Parametry aplikace
Další parametry aplikace.
Maximální velikosti upload požadavků
Z bezpečnostních důvodů jsou v aplikaci nastaveny maximální velikosti pro velikost upload požadavků. Tyto limity je možné změnit.
elza.upload.max_file_size- maximální velikost jednoho nahrávaného souboru, výchozí hodnota: 25MB
elza.upload.max_request_size- maximální velikost jednoho požadavku, výchozí hodnota: 100MBNastavením hodnoty -1 je možné omezení zcela vypnout.
Maximální velikost dávky pro databázové operace
Parametr zajišťuje bezpečnou a efektivní práci se seznamy v databázových dotazech s tím, že rozděluje příliš velké seznamy na dávky. Výchozí velikost dávky je 1000. Pomocí parametru je možné nastavit velikost dávky (maximální počet záznamů v klauzuli IN):
elza.data.batchSize- maximální velikost dávky
Vymazání oblastí archivních entit
Archivní entity jsou členěny do oblastí. Oblast nelze odstranit pokud jsou k ní připojeny archivní entity. Aktivací zvláštní volby je možné vynutit odstranění oblasti.
elza.scope.deleteWithEntities- hodnota true nebo false
Volba je standardně vypnuta (false). Pokud je volba aktivní (po restartu aplikace). Je možné odstranění již nepoužívaných oblastí.
Automatická reindexace
Ve výchozí konfiguraci je nastaveno provádění automatické reindexace dat každou sobotu
ve 4:00 ráno. Spouštění reindexace je možné deaktivovat nebo nastavit
vlastní frekvenci jejího provádění. Popis nastavení je ve vzorové konfiguraci
v části elza.reindex.cron.
Předávání pomůcek a výstupů pomocí WS
Pomocí webové služby je možné výslednou archivní pomůcku automatizovaně předat po vygenerování do návazného informačního systému. Pomůcka je odeslána pomocí WSDL služby - FileTransfer.
- Z hlediska konfigurace je pro předávání nutné nastavit:
elza.findingAid.upload.url- cílové URLelza.findingAid.upload.username,elza.findingAid.upload.password- volitelné jméno a heslo pro BASIC autorizaci.elza.findingAid.upload.soapLogging- podrobné logování komunikace (true/false)
- Pro povolení nahrávání pomůcek z uživatelského rozhraní je nutné nastavit:
elza.output.allowSend: true- povolení odesíláníelza.output.senderName: FtOutputSender- určení způsobu odesílání
Kompletní příklad nastavení:
elza:
findingAid:
upload:
url: http://10.1.25.34:8080/esm/cxf/ft
soapLogging: false
username: xxxxx
password: xxxxx
output:
allowSend: true
senderName: FtOutputSender
Aktualizace správců fondu přes webovou službu
Při zakládání nebo aktualizaci archivního souboru (fondu) přes webovou službu je možné určit, jak se mají aktualizovat oprávnění správců fondu (uživatelů a skupin):
elza.webservice.fonds.adminPermissionMode- režim aktualizace správců
Možné hodnoty:
FULL_SYNC(výchozí) - zaslaní správci se přidají a stávající správci, kteří nejsou v požadavku, se odeberou. Výsledek přesně odpovídá zaslanému seznamu.
ADD_ONLY- zaslaní správci se pouze přidají, stávající oprávnění zůstanou zachována. Oprávnění přidaná administrátorem nejsou aktualizací přes webovou službu odebrána.
Příklad nastavení:
elza:
webservice:
fonds:
adminPermissionMode: ADD_ONLY
4.6.6. Zabezpečení
V aplikaci Elza je možné nastavit několik parametrů týkajících se zabezpečení a metod
autentizace uživatelů. Pro nastavení je určena sekce elza.security.
Dostupné metody autentizace uživatelů:
autentizace pomocí databáze Elza, tj. uživatelských účtů uložených v Elza v kombinaci s heslem (výchozí metoda)
autentizace pomocí LDAP serveru (Active Directory apod.)
autentizace na základě hlaviček HTTP požadavků
autentizace na základě JWT tokenů
autentizace pomocí Kerberos (SPNEGO), umožňuje jednotné přihlášení (SSO) v rámci Windows domény
Jednotlivé metody autentizace je možné kombinovat. Dokumentace pro nastavení jednotlivých metod je v rámci zdrojového kódu Elza, případně je vhodné kontaktovat dodavatele aplikace a požádat o konzultaci.
Url pro adresu po odhlášení
V nastavení je možné definovat adresu pro přechod při odhlášení uživatele. Při odhlášení uživatele dojde k přesměrování na určenou adresu.
elza.security.logoutUrl- url adresa přechodu