Avatar billede jeppea Nybegynder
08. maj 2002 - 10:24 Der er 12 kommentarer og
3 løsninger

getRemoteUser

Jeg er ved at lave en jsp-side hvor jeg skal bruge login-navnet på den som er logget ind på klientmaskinen. Serveren skal kunne kende forskel på de forskellige brugere selv om de bruger den samme computer til at se siden med.

Måden at gøre det på burde være at skrive "request.getRemoteUser()". Men det returnerer bare "null". Der mangler tilsyneladende "authentication" af brugeren?!? Men hvordan fixer man det?

Hvis det har noget at sige, så kører klient-maskinerne Windows 2000 og selve applikationen kører på en tomcat-server på en unix-maskine...
Avatar billede medions Nybegynder
08. maj 2002 - 10:30 #1
Menner det er Request.ServerVariables("GET_USERNAME")

//>Rune
Avatar billede medions Nybegynder
08. maj 2002 - 10:32 #2
Sorry... her var det:
ServletRequest.getRemoteUser()

//>Rune
Avatar billede medions Nybegynder
08. maj 2002 - 10:34 #3
Hmm... nu er jeg forviret..!!!

her har du dem allesammen..!

http://www.apachelabs.org/tomcat-dev/199912.mbox/%3C19991222115342.90543.qmail@locus.apache.org%3E

//>Rune
Avatar billede medions Nybegynder
08. maj 2002 - 10:35 #4
Avatar billede jeppea Nybegynder
08. maj 2002 - 10:45 #5
Jeg kan ikke rigtigt få det til at spille...

Det returnerer jo stadig "null".
Avatar billede disky Nybegynder
08. maj 2002 - 12:35 #6
Hvis du vil kende forskel på brugere skal du bruge en rigtig login skærm altså username password, eller brug cookies.

Den metode du foreslår virker ikke almindeligvis via http, heldigvis.
Jeg tror de færreste mennesker ønsker deres login navn spredt på nettet hver gang de henter en side via http protokolen.



medions:
De sider du linker til er temmelig ubrugeligt, specielt den første med tomcat, og side 2 viser jo netop at getRemoteUser() returnerer 'null'

Præcis som java API'en specificerer at den skal gøre hvis brugeren ikke en authenticatet.
Avatar billede jeppea Nybegynder
08. maj 2002 - 13:00 #7
Jeg er godt klar over at det ikke er hensigtsmæssigt hvis alle bare kunne få andres brugernavne oplyst, men det skal køre på et intra-net.

Det jeg spørger om er hvordan man giver en side lov til at "requeste" éns brugernavn. Hvordan gør man brugeren authenticated?

Cookies er ikke ønskværdigt og logins er for bøsser. ;) Desuden er der andre der kan, jeg har set det andre steder - desværre ved jeg bare ikke hvordan.
Avatar billede disky Nybegynder
08. maj 2002 - 14:32 #8
du kan gøre det via ActiveX, men activex er også totalt ligeglad med alt hvad der lugter af sikkerhed.
Avatar billede jeppea Nybegynder
08. maj 2002 - 14:54 #9
Fint, men hvordan?
Avatar billede soelvpil Nybegynder
08. maj 2002 - 19:39 #10
GetRemoteUser returnerer null, med mindre man i sin web.xml har sat container-managed security op, så brugeren mødes med en "standard-login-prompt". Det betyder jo så, at man skal finde ud af, hvordan serveren sættes op til at checke op mod brugerne i det lokale netværk, og det er formentlig muligt, men svært.

Undgå login-prompten helt, tror jeg ikke er muligt (men måske kunne et trick med at sætte Microsofts Information Server foran og en masse hokus pokus hjælpe??).
Avatar billede jeppea Nybegynder
09. maj 2002 - 11:25 #11
Hvad i alverden kan man saa bruge funktionen getRemoteUser til???
Avatar billede soelvpil Nybegynder
09. maj 2002 - 16:18 #12
Hvis du bruger container-managed security, er det måden at få brugernavnet på.

Ellers kan den ikke bruges til noget.
Avatar billede jeppea Nybegynder
13. maj 2002 - 14:39 #13
Hvordan bruger man så container-managed security?
Avatar billede soelvpil Nybegynder
13. maj 2002 - 21:04 #14
Hvis det er en tomcat4 du bruger, vil jeg anbefale dig at kigge på manager-applikationen (webapps/manager i standardinstallationen), det er et eksempel på container-managed security.

For at køre den, skal du først i filen tomcat-users.xml
(under %tomcat_home%/conf) have defineret en bruger med rollen "manager".

Du skal være opmærksom på
1. Du undgår ikke en login-prompt.
2. Der er ikke umiddelbart synkronisering med lovlige brugere på netværket.

1. kan nok i princippet løses ved at sætte en Microsoft Information Server foran (jeg er dog ikke sikker).
2. Kan i princippet løses ved at skifte standard-realmen ud med en ldap-implementation, der kan synkroniseres med brugere af det lokale netværk, men det er nok heller ikke noget man "bare" lige gør.
Avatar billede jeppea Nybegynder
21. maj 2002 - 17:41 #15
Der er desværre ikke rigtigt kommet noget ud af det her som jeg kunne bruge til noget...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester