Avatar billede da71009 Nybegynder
17. januar 2007 - 14:49 Der er 1 løsning

Hent og vis html side fra https kald via servlet/javascript

Hej.
Min problemstilling er således:

Jeg har en applikation opbygget af jsp/servlets. På en af siderne er der et link som skal åbne en popup med en side fra en ekstern leverandør. Linket til den eksterne leverandør er et https link med nogle parametre jeg genererer dynamisk. Sikkerheden leverandøren anvender er 'HTTP Basic Authorization'. Brugernavn og password har jeg gemt i min opsætning, så det ikke er noget applikationsbrugeren skal bekymre sig om.

Jeg har dog nogle problemer med at få gjort login'et usynligt eller i det hele taget få vist den eksterne side korrekt alt efter hvilken løsningsmetode jeg forsøger.

Jeg har prøvet disse løsninger..
1. Ved tryk på mit link kalder jeg ned i min servlet som logger ind hos den den eksterne leverandør via 'PasswordAuthentication' objectet i Java. Login'et forløber helt som det skal. Jeg har læst mig frem til at det første login caches på en måde, så det ikke er nødvendigt at logge ind igen hvis man tilgår linket flere gange i træk. Jeg prøver så at lave en 'response.setRedirect(<httpslinket>)' for at få vist siden i browseren, men nu skal jeg så logge ind endnu engang alligevel. Jeg går ud fra at et login via servlet ikke kan genbruges i browseren fordi det jo er to helt forskellige steder. Fair nok, men kan man overføre servlettens login til sessionen på browseren eller lign?

2. Når nu jeg laver min 'response.setRedirect' kan jeg så istedet få sat https brugernavn og pass på den request header som redirect'en genererer og sender mod den eksterne side?

3. Når jeg fra min servlet logger ind på https linket kan jeg efterfølgende via et Url.getContent faktisk få hele den webside jeg vil vise som en streng. Men problemet her bliver så at der er mange relative stier i html'en, så hvis jeg bare putter html i et felt på en af mine egne jsp, så forsøger den jo at finde tingene på min egen webserver istedet for den eksterne server. Dette virker selvfølgelig ikke, men kan man fortælle den at den skal hente de relative ting på den eksterne server? Jeg tror det ikke selv da det vel ville være et sikkerhedsbrist.

4. Så har jeg prøvet at gøre det hele via javascript på en jsp. Dette gør jeg i IE via noget ActiveX og 'xmlhttprequest' objectet. Det er vist den metode Ajax anvender. Her kan jeg få det til at virke, men IE kommer så bare med en advarsel om jeg nu vil til at gøre noget som måske ikke er sikkert. Det sker vist fordi jeg via javasript vil hente noget fra et andet domæne end mit eget. Jeg kan omgå advarslen ved at putte min egen og den eksterne side ind under Trusted sites i IE, men jeg synes selv det er lidt en molbo agtig løsning. Plus det virker ikke i Firefox medmindre man signer script'sene på en eller anden måde. Nogen steder vil man nok heller ikke tillade brug af ActiveX, så i det tilfælde vil det jo ikke du.


Er det forståligt hvad det er jeg prøver på? Ellers må jeg jo lige forsøge at uddybe.
Allerhelst ville jeg nok lave det via en servlet, hvis det kan lade sig gøre. Det er meget muligt der er en simpel løsning jeg bare ikke kender, men jeg er absolut heller ingen guru på området, så alle forslag er velkomne. Nu kan jeg snart ikke finde på mere at Google.
Avatar billede da71009 Nybegynder
29. oktober 2007 - 14:22 #1
Jeg fandt aldrig en løsning, så nu forsøger jeg at lukke spørgsmålet.
Kan ikke finde en 'luk' knap, men lad os se om jeg kan lukke den ved at svare...
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