Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?

[es] :: Java :: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?

Strane: 1 2

[ Pregleda: 7000 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zmau
Dragan Jovanović
programer
Šabac

Član broj: 80834
Poruke: 290
212.200.123.*



+80 Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?31.01.2007. u 20:23 - pre 209 meseci
Citat:
Pogledaj prvo neku knjigu za EJB3, prođi neki tutorial u kome ćeš pozivati session bean-ove remote i lokalno.

Ok, to umem. I remote pozivanje (s klijenta) odrađujem kako bog zapoveda.

Citat:
Što se konkretnog problema tiče, nejasno mi je na koji način regulišeš prava pristupa serveru?

Nikako.
Citat:
Šta se dešava prilikom pokretanja klijentske aplikacije, ... šta uradiš sa tim informacijama koje korisnik ukuca i na koji način proveravaš da li on ima pravo da izvršava neke metode session beanova?

Korisnik se uloguje (moj kood konsultuje tabele user i userType u bazi) i zapamtim tu informaciju na klijentu. Sad sam se upravo pitao kako tu informaciju elegantno da prosledim serveru i zato sam i pokrenuo topic.

I, kako sam sad shvatio, trebalo bi da algoritam za autentication napravim koristeći javin/jbossov framework (na čelu sa klasom DatabaseServerLoginModule). I kad to odradim, ona metoda getCallerPrincipals bi trebala da počne da šljaka. A baš sam se pitao šta će da mi vrati ta metoda, al sam razmišljao da će mi se kasti samo kad metoda proradi :-).
Ok, već sam krenuo da čituckam o tom JAAS frameworku.

it works on my machine
 
Odgovor na temu

igor_ns
Igor Paunov
IPSIS IT Consulting
Novi sad

Član broj: 4253
Poruke: 88
*.ADSL.panline.net.

Sajt: www.tagws.net


Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?31.01.2007. u 21:37 - pre 209 meseci
Cao,-
Da se i ja malo umešam. Googlao sam večeras na ovu temu, zahtev je suviše jednostavan da bi rešenje bilo komplikovano. Al' sam pametan

Verujem nam je dobvoljno da je dovoljno da odradimo pravi login preko JBoss modula i da će sve leći na svoje mesto.

Ne znam dokle si stigao ali možda ovo pomogne:

Using JAAS Authentication with JBoss - http://www.awprofessional.com/.../article.asp?p=394898&rl=1
Building a Custom JBoss Login Module - http://www.informit.com/articles/article.asp?p=389111&rl=1
http://wiki.jboss.org/wiki/Wiki.jsp?page=LoginModule
http://wiki.jboss.org/wiki/Wik...page=DatabaseServerLoginModule

Verujem da posle ovoga neće biti problem dobiti ctx.getCallerPrincipal() i sl.
Igor Paunov
 
Odgovor na temu

igor_ns
Igor Paunov
IPSIS IT Consulting
Novi sad

Član broj: 4253
Poruke: 88
*.ADSL.panline.net.

Sajt: www.tagws.net


Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?31.01.2007. u 21:40 - pre 209 meseci
heh.... tek sad vidim prethodni post , da si na pravom putu. kucanje mog posta se odužilo pa si ti u medjuvremenu pisao
Igor Paunov
 
Odgovor na temu

zmau
Dragan Jovanović
programer
Šabac

Član broj: 80834
Poruke: 290
212.200.123.*



+80 Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?03.02.2007. u 19:36 - pre 209 meseci
Napravio sam nekakav mehanizam ali i dalje imam isti problem.
Evo šta sam napravio :
CallbackHandler za sada vraća zakucane vrednosti (za login i password) postojećeg usera iz moje baze :
Code:

public void handle(Callback[] callbacks) throws IOException { 
     ((NameCallback)callbacks[0]).setName("slavica"); 
     ((PasswordCallback)callbacks[1]).setPassword(HashUtils.sha("slavica").toCharArray()); 



U config fajlu (koji nije xml, nego po sintaksi iz javadoca za klasu Configuration) sam definisao DatabaseServerLoginModule (ustvari napravio sam njegovog naslednika) koji čita podatke iz moje baze.

U primeru koji sam pokupio iz knjige i adaptirao, LoginContext se inicijalizuje iz config fajla (a prosleđujem mu i callbackHandlera) :

Code:

System.setProperty("java.security.auth.login.config", "d:\\tag notes\\client.config"); // ok, ovo ću upristojiti, samo dok mi sve proradi
/* Authenticate via JAAS */ 
LoginContext loginContext = new LoginContext("HelloClient", new TestCallbackHandler()); 
loginContext.login(); 


...i obzirom da okida metode getUsersPassword() i getRoleSets() iz mog loginModula (traceovao sam, dobije korektne parametre iz callbackHandlera, i upiti vrate vrednosti koje očekujem), rekao bih da to šljaka.

E, onda pristupim Vanjinom sessionEjb-u iz primera sa prethodne strane :

Code:

SessionEJB ejb = (SessionEJB)UtilCli.getEjb("com.tagws.core.dbbroker.SessionEJBBean");
  /* Call a business method, propagating the security context */ 
  String result; 
  try { 
        result = ejb.radi();
  } 
  catch (javax.ejb.EJBException e) { 
     result = e.getCausedByException().getMessage(); 
  } 


U metodi ejb.radi ponovo pukne poziv ctx.getCallerPrincipal() i ponovo baci IllegalStateException sa getMessage() == null.
A ja imam utisak da sam napravio sve što treba jer ova metoda taman može da vrati jedan element niza koji vraća metoda getRoleSets() iz LoginModula.

Evo šta nisam napravio :
ejb-jar.xml iz Hylovog primera sa prethodne strane. Koliko kapiram, metoda koju ja pokušavam da okinem se ne oslanja na njega. Ili grešim ?


[Ovu poruku je menjao zmau dana 03.02.2007. u 21:13 GMT+1]
it works on my machine
 
Odgovor na temu

dusanmiloradovic
Dusan Miloradovic
Abu Dabi

Član broj: 38080
Poruke: 45
*.emirates.net.ae.



Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?04.02.2007. u 04:39 - pre 209 meseci
Treba da InitialContext-u dodelis podatke o korisniku koji se ulogocao, pa onda sa tim InitialContextom da trazis bin.

HashTable props = new HashTable();
props.put( Context.SECURITY_PRINCIPAL,
SecurityAssociation.getPrincipal() );
props.put( Context.SECURITY_CREDENTIALS,
SecurityAssociation.getCredential() );

InitialContext initialContext = new InitialContext( props );

Evo linka:
http://www.timfanelli.com/item/98
 
Odgovor na temu

zmau
Dragan Jovanović
programer
Šabac

Član broj: 80834
Poruke: 290
212.200.123.*



+80 Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?05.02.2007. u 04:31 - pre 209 meseci
Sjajno, Dušane, tačno mi je to falilo. Sad šljaka.
Doduše samo iz prvopozvanog session beana. Kad metoda session beana okine statičku serversku metodu, ta serverska metoda ipak ne vidi klijenta. Razmišljao sam i o interceptoru koji bi odrađivao pisanje u log tabelu, ali mi njegovo korišćenje ne bi eliminisalo potrebu za statičkim metodama.
Tako da mi u ovom delu priče ostaje prosleđivanje parametra. Osim naravno ako neko ima bolju ideju :-).
Što se tiče prosleđivanja iste informacije od jednog beana do drugog, o tome tek treba da porazmislim.
U svakom slučaju, momci, veliko hvala svoj trojici.

it works on my machine
 
Odgovor na temu

zmau
Dragan Jovanović
programer
Šabac

Član broj: 80834
Poruke: 290
212.200.178.*



+80 Profil

icon Re: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?11.03.2007. u 22:55 - pre 208 meseci
Citat:
Btw, izlistaj knjigu Mastering EJB 3.0 od Wiley, verujem da ce ti se otvoriti oci posle toga ;)


He, he, Vanja, sad sam pojurio tu knjigu koju mi preporučuješ, i ispostavilo se da je to ona ista knjiga koju sam ja pominjao, i kojoj si ti iz cuga našao grešku :-). Našao sam i ja još koju. U globalu knjiga mi se dopada, samo ne znam koliko smem da joj verujem :-).
it works on my machine
 
Odgovor na temu

[es] :: Java :: Da li postoji mogućnost da ejb objekat bude svestan klijenta koji ga je pozvao ?

Strane: 1 2

[ Pregleda: 7000 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.