

Java - kam ulozit pristup na DB
ahoj, jak se standardne ukladaji pristupove udaje napr. k databazovemu serveru v klasicke java desktop aplikaci, ve ktere je mozne v nastaveni tyto udaje menit? Diky
ahoj, jak se standardne ukladaji pristupove udaje napr. k databazovemu serveru v klasicke java desktop aplikaci, ve ktere je mozne v nastaveni tyto udaje menit? Diky
Zpět do poradny Odpovědět na původní otázku Nahoru
nejaky app.config (xml suboru z ktoreho si aplikacia cita nastavenia).
To jsem si taky myslel, ale urcite tam nedam pristupove udaje k db v plaintextu ne?
Minimalne heslo se uklada jako hash.
Uzivatel zada jmeno a heslo v klientske aplikaci, ta spocita hash a posle na server k overeni. Pokud hashe souhlasi, je uzivatel autentifikovan.
Pri zmene hesla se na server odesle a ulozi novy hash.
Jeste se dela to, ze k heslu pred vypoctem hashe neco pridas, treba znak na zacatek a na konec - tzv. osoleni.
Lokalne ty udaje vubec ukladat nemusis.
To se přece obecně nedá, logovat se do DB přes hashované heslo...
Pokud je on autor te aplikace, pak nevisím žádný důvod, proč by to nešlo.
Nejde o přihlášení k DB (to může být někde skrytě na pozadí a celá aplikace může používat jedno připojení), ale o autentizaci uživatele v rámci aplikace.
V Jave sa nastavenia ukladajú zvyčajne do .properties súboru, ktorý nie je v XML formáte (.config súbor v XML formáte je typický pre .NET). Spôsob uloženia hesla závisí od požadovanej úrovne bezpečnosti - niekedy nemusí byť problém ani heslo v plain-texte. Tiež existuje možnosť, že heslo nebudeš ukladať vôbec a do databázy budeš pristupovať ako používateľ, ktorý je práve prihlásený (cez single sign-on, napr. Kerberos). Pokiaľ sa potrebuješ prihlásiť do databázy s heslom a plain-text nie je možnosť, tak heslo musíš šifrovať (hešovanie nebude stačiť).
Z popisu nie je jasné, či klienti pristupujú k databáze len v rámci internej siete alebo aj zvonku. Ak je to aj zvonku, tak priamy prístup k databáze by som ani nepovolil a všetok prístup k databáze by bol skrytý za webovou službou.
Neni to zadna komercni aplikace, takze nejakou webovou sluzbu resit nebudu. Je to ciste amaterska desktopova aplikace, ktera ma data ve vzdalene databazi, ke ktere se vzdy pri spusteni aplikace prihlasi. Proto mi slo jen o zpusob ulozeni techto prihlasovacich udaju. A jak jste uz napsali, nezbyde asi jina moznost nez udaje sifrovat v nejakem .properties souboru.
Ohledne te web sluzby, kdyby se toto do budoucna melo implementovat - jak pak funguje komunikace? Jakym protokolem? A jak se dotazovat web sluzby na data?
precitaj si nieco o REST alebo SOAP.
Dôležité je, že komunikácia s webovou službou prebieha cez rovnaký port, ako keď pristupuješ k webovým stránkam. Vďaka tomu máš takmer istotu, že ti nebude stáť v ceste nejaký firewall. Použitý protokol zvyčajne je, ako už bolo napísané, SOAP alebo REST (resp. REST-like) JSON.
Hlavný rozdiel je ale v tom, že vo webovej službe dokážeš oveľa lepšie riadiť prístup, než priamo v databáze. Používateľ sa tak môže prihlasovať len pod svojím menom/heslom. Poskytnúť mu môžeš len tie operácie, na ktoré má oprávnenie. A budú sa vykonávať len také SQL príkazy, ktoré do webovej služby napíšeš. Je to naozaj obrovský rozdiel z hľadiska bezpečnosti.