[Javalist] WebStart JNLP API

Zoltán Bernát bernatzoltan at gmail.com
2013. Feb. 5., K, 01:14:05 CET


Huha. 3-szor is elolvastam megsem ment be a fejembe, amit irtal.
Itt a server-kliens kommunikacio web service-ekkel tortenik. Minden ws
le van vedve <auth-method>BASIC</auth-method> modon.
Azaz a kliensnek minden hivas http fejebe bele kell tenni az un/pw parost.
Ez a server oldalon termeszetesen teljesen transzparens, a server
kodnak semmi teendoje ezzel. Ugybar az EJB retegbe is transzparens
modon eljut a principal.
De a kliens oldalon is szinte u.ez a szitu. Egyetlen class van, ami
intezi a kapcsolodast a server fele, az irja bele a http headerbe a
http basic auth infokat. A servertol kapott http valsz fejlecevel
pedig semmi dolga nincs a kliensek.

Ha jol gondolom <auth-method>FORM</auth-method> modon bonyolultabb
lenne a dolog, vagy megsem?  :)




Zsombor <gzsombor at gmail.com> írta (2013. február 5. 0:52):
> Hmm, hát nem teljesen értem mi az olyan kritikus a jar-okban, de ha ez
> annyira fontos, akkor csináld meg azt, hogy a jar-okat http basic-cel véded,
> a többit meg simán session cookie-val, s ebben a session-ben tárolod a login
> információt - ez nyilván a szerver oldalon van, s csinálsz egy olyan
> servletet, amit szintén http basic-cel van védve, s csak annyit tesz, hogy
> kiolvassa a http basic által authentikált felhasználó nevet és berakja a
> session-be. S ezt kell meghívnia a kliens programnak elsőként. S ha másként
> akar bejelentkezni, akkor meg ettől függetlenül, egy másik servlet-tel
> authentikálhatsz, és frissítheted a session-ben az aktuális user nevet.
>
> Üdv
>  Zs
>
>
>
> 2013/2/5 Zoltán Bernát <bernatzoltan at gmail.com>
>>
>> Igen ebben igazad van. Ez ugy muxik, mint egy webbongeszoben, ha jol
>> ertem. Ott szamitottam el magam, hogy en csak abban lattam a jnlp
>> szerepet, hogy letolti nekem a jarokat, (es figyeli azok last modified
>> erteket) es telepiti a kliens gepere.
>> Kozben meg joval tobbrol van szo:
>>
>> http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/javax/jnlp/package-summary.html
>> Ha azt csinalnam, hogy siman letolti a user a jar-okat egy vedett
>> weboldalrol, es futtatja a gepen, akkor szabad vagyok mint a madar.
>> Viszont elvesztem pl a Web Start altal nyujtott update lehetoseget. De
>> akkor olyan un/pw parossal jelentkezik be, amilyennel csak akar.
>> Nekem az lenne a megfelelo, hogyha ezt az automatizmust (tehat a
>> header irogatasat) CSAK a jar-ok frissen tartasahoz hasznalna a jnlp,
>> tehat ne kelljen minden jar letoltesehez passwordot adni. Ezen a
>> ponton az en programom nem jatszik szerpet. Nem is fut meg.
>>
>>
>>
>> Zsombor <gzsombor at gmail.com> írta (2013. február 5. 0:24):
>> >  Ez a http protokol, és ezen belül ez a basic authentikáció. Ha az adott
>> > host:port párhoz fordul egy alkalmazás, akkor a korábban ledobott
>> > cookiekat
>> > kell prezentálnia - ami ez esetben mellékes, valamint ha korábban volt,
>> > hogy
>> > "Auth fail" üzenettel és egy "Realm" névvel jött vissza egy http
>> > lekérés,
>> > ami után sikerült authentikálnia, akkor mindig kell küldenie az user/pw
>> > párost, minden egyes requesttel - az adott szerver felé. S ezért kell
>> > beleirogatni a request-be, hogy ne hogy kimaradjon belőle - s hogy ezt
>> > kvázi
>> > transzparens módon lekezelje feléd, mintha nem is lenne semmilyen
>> > authentikáció. Ez az egész a java.net.URLConnection és a hozzá
>> > kapcsolódó
>> > http kliens műve. Nyilván, ha Te mondjuk az apache HttpClient-et
>> > használnád,
>> > az nem tudna az egész realm/cookie/stb beállításaidról ... Persze az meg
>> > más
>> > problémákhoz vezetne.
>> >
>> >
>> > Zs
>> >
>> >
>> > 2013/2/4 Zoltán Bernát <bernatzoltan at gmail.com>
>> >>
>> >> Igen ezt a problemat ismerem, sajnos, mert a klienskod letolteset
>> >> lehetove tevo web oldal eleresehez is http-basic-kel kell azonositani
>> >> a webbongeszoben. Ott megoldottam a dolgot egy, meg elfogadtaho
>> >> szinten.
>> >> De itt azert ha jol "erzem" a dolgot, meg bosszantobb a helyzet,
>> >> illetve talan egy kicsi (vagy nagyon) masrol is van szo. Igazabol nem
>> >> ertem, mi a turo koze van a jnlp kliensek az en alkalmazasom altal
>> >> kuldott http keresekhez. Nehogy mar ne kuldhessek olyan headert,
>> >> amilyet akarok! Az alkalmazasom mas serverekhez is fordulhatna http
>> >> keresekkel, ezek headerjet is modositgatna a jnlp? Vagy ugy
>> >> viselkedne, mint egy web bongeszo, es csak a codbase serverhez
>> >> intezett keresek headerjebe irogat bele? Es mi ertelme van
>> >> beleirogatni? Tehat mi szuksege van erre a jnlp-nek??? Mert a jar
>> >> file-ok letoltesehez persze beleir a headerbe. Ez rendben is van,
>> >> hoszen szol neki a webserver, hogy http-basic auth kell.
>> >> Es programom egyeb protokollokal is kommunikalhatna a serverrel, akar
>> >> olyan protokollal, amit nem is ismer a jnlp. Akkor abba hogyan
>> >> piszkalna bele? Teljesen erthetetlen szamomra ez a dolog. Ebbol meg az
>> >> kovetkezik,  hogy valamit nagyon felreertek a rendszer
>> >> feladataval/mukodesevel kapcsolatban.
>> >>
>> >> Zsombor <gzsombor at gmail.com> írta (2013. február 4. 23:32):
>> >> > Jah, érthető. Sajnos ez a "hogyan logoljunk ki http-basic-auth-ot
>> >> > használó
>> >> > webalkalmazások"-ból kérdés/szívás problémája:
>> >> >
>> >> >
>> >> >
>> >> > http://stackoverflow.com/questions/233507/how-to-log-out-user-from-web-site-using-basic-authentication
>> >> >
>> >> >
>> >> > Hát, nem túl rózsás a helyzet.
>> >> >
>> >> > üdv
>> >> >
>> >> >  Zs
>> >> >
>> >> > 2013/2/4 Zoltán Bernát <bernatzoltan at gmail.com>
>> >> >>
>> >> >> Tulajdonkeppen nem kell ketszer.
>> >> >>
>> >> >> A felhasznalo, a kliensprogram telepitesekor csak egyszer kell, hogy
>> >> >> megadja  a jelszavat. A javaws lehetoseget ad arra, (mint egy web
>> >> >> bongeszo,) hogy a usernek ne kelljen ezt a jelszot tobbet megadnia.
>> >> >> Tehat ezt a jelszot tobbet nem keri a rendszer azt a javaws
>> >> >> "megjegyzi", ha ezt a user igy akarja. A user kattint a desktopjan
>> >> >> levo ikonon (amit a jnlp kliens telepitett) es mar indul is a
>> >> >> programom. (nyilvan a jnlp kliens, a progi inditasa elott megnezi,
>> >> >> hogy a szerveren levo jar file-ok last modified erteke ujabb-e, mint
>> >> >> a
>> >> >> kliensnel levokenek. Ehhez a persze el kell ernie a szerveren a
>> >> >> vedett
>> >> >> mappaban levo jar-okat, ehhez pedig folhasznalja a telepiteskor,
>> >> >> elso
>> >> >> alkalommal bekert jelszot)
>> >> >>
>> >> >> Tehat elindul az en alkalmazasom, es csak az o szamara kell
>> >> >> bepotyogni
>> >> >> minden alkalommal a un/pw parost. Raadasul a usernek tobb accountja
>> >> >> is
>> >> >> lehet a serveren. (mint ahogyan van is) De hiaba adja meg pl. a
>> >> >> masodik fiokjanak un/pw parosat, ha az alkalmazas installalasakor a
>> >> >> jnlp-nek az elso fiokjanak az un/pw parosat adta meg, soha nem tudja
>> >> >> mar elerni a masodik fiokjat.
>> >> >>
>> >> >>
>> >> >>
>> >> >> Zsombor <gzsombor at gmail.com> írta (2013. február 4. 21:31):
>> >> >> > Hali !
>> >> >> >
>> >> >> >
>> >> >> >  Miért baj, hogy nem kell kétszer authentikálni? Felhasználóként
>> >> >> > kifejezetten zavarna, ha kétszer kellene beírnom a jelszavamat ...
>> >> >> >
>> >> >> >
>> >> >> > Zs
>> >> >> >
>> >> >> > 2013/2/4 Zoltán Bernát <bernatzoltan at gmail.com>
>> >> >> >>
>> >> >> >> Sziasztok!
>> >> >> >>
>> >> >> >> Van egy vastagkliens alkalmazasom, ami web service-szel
>> >> >> >> kommunikal
>> >> >> >> egy
>> >> >> >> glassfish szerverrel.
>> >> >> >> Szeretnem megoldani a kliens kod Web Startos terjeszteset.
>> >> >> >> A szerveren egy konyvtarban vannak a kliens kod jar faljai es a
>> >> >> >> jnlp
>> >> >> >> leiro file is.
>> >> >> >> Ezt a konyvtarat a webkontener vedi, HTTP BASIC authentikacioval
>> >> >> >> lehet
>> >> >> >> hozzaferni. (persze https folott). Azaz nem akarom,  hogy barki
>> >> >> >> hozzaferjen a klien kodhoz.
>> >> >> >> web.xml: <auth-method>BASIC</auth-method>
>> >> >> >> (probalkoztam a <auth-method>FORM</auth-method> megvalositassal
>> >> >> >> is,
>> >> >> >> sajnos sikertelenul)
>> >> >> >>
>> >> >> >> Ilyenkor persze a jnlp kliens nem fer hozza kapasbol a jar
>> >> >> >> file-okhoz,
>> >> >> >> ezert foldob a usernek egy ablakot, ahol megadhatja a
>> >> >> >> username/password parost.
>> >> >> >> Ennek megadas utan lehuzza az alkalmazast, es mar fut is a kliens
>> >> >> >> gepen.
>> >> >> >>
>> >> >> >> A kliens programom is HTTP basic auth. segitsegevel eri el a web
>> >> >> >> service-eket.
>> >> >> >> Indulasakor bekeri a usertol a felhasznalo nevet es a jelszot.
>> >> >> >> Ezutan minden serverhez inditott keres http headerjebe beirja az
>> >> >> >> authotization elembe ezt a username/passsword ertekeket, es a
>> >> >> >> webkontener  ezen ertekekre autentikal. A problema ott van, hogy
>> >> >> >> a
>> >> >> >> user gepen futo jnlp klines(javaws.exe) a szepen felulirja a
>> >> >> >> programom
>> >> >> >> altal a http headerbe irt authotization ertekeket, azzal a
>> >> >> >> username/password parossal, amit a user akkor adott meg neki,
>> >> >> >> amikor
>> >> >> >> a
>> >> >> >> jnlp kliens kerte tole, hogy azzal lehuzhassa a jar file-okat a
>> >> >> >> server
>> >> >> >> vedett konyvtarabol.
>> >> >> >>
>> >> >> >> Igy viszont ugyebar tok mindegy milyen un/pw parost ad meg a
>> >> >> >> user, a
>> >> >> >> jnlp kliens a sajat valtozatat kuldi a servernek. (persze ha a
>> >> >> >> fejlesztokornyezetbol futtaom a kliens kodot, akkor minden
>> >> >> >> megfeleloen
>> >> >> >> mukodik)
>> >> >> >>
>> >> >> >> Bogarasztam a JNLP API-t, de nem talaltam olyat, amivel
>> >> >> >> ravehetnem a
>> >> >> >> jnlp klienst, hogy ne irja bele minden keres fejebe a sajat
>> >> >> >> authorization erteket.
>> >> >> >> Van v.kinek otlete, hogy lehet ebbol kikeveredni?
>> >> >> >> Koszi.
>> >> >> >> _______________________________________________
>> >> >> >> Javalist mailing list
>> >> >> >> Javalist at lists.javaforum.hu
>> >> >> >> http://lists.javaforum.hu/mailman/listinfo/javalist
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Javalist mailing list
>> >> >> > Javalist at lists.javaforum.hu
>> >> >> > http://lists.javaforum.hu/mailman/listinfo/javalist
>> >> >> >
>> >> >> _______________________________________________
>> >> >> Javalist mailing list
>> >> >> Javalist at lists.javaforum.hu
>> >> >> http://lists.javaforum.hu/mailman/listinfo/javalist
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Javalist mailing list
>> >> > Javalist at lists.javaforum.hu
>> >> > http://lists.javaforum.hu/mailman/listinfo/javalist
>> >> >
>> >> _______________________________________________
>> >> Javalist mailing list
>> >> Javalist at lists.javaforum.hu
>> >> http://lists.javaforum.hu/mailman/listinfo/javalist
>> >
>> >
>> >
>> > _______________________________________________
>> > Javalist mailing list
>> > Javalist at lists.javaforum.hu
>> > http://lists.javaforum.hu/mailman/listinfo/javalist
>> >
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról