© 2013 All rights reserved.
4

Java: HTTPS authorization

Jednoduchá ukázka připojení a autorizace pod protokolem HTTPS.

Vytvořit klasické spojení s URL adresou v protokolu HTTP není zřejmě žádný problém. Když se k tomu přidá nutná autorizace uživatele a navíc protokol HTTPS, připojení se může zkomplikovat.

Spojení a autorizace pod protokolem HTTPS je podobné jako pod klasickým HTTP. Rozdíl je v přijetí certifikátu a HTTPS komunikaci.

Výsledná třída má tři vstupní parametry:

  • url adresu pro připojení
  • přihlašovací jméno pro spojení
  • odpovídající přihlašovací heslo

Pro připojení k URL adrese slouží metoda private HttpsURLConnection connection(), která vrací identifikátor spojení:

Metoda vrací identifikátor spojení, na jehož základě můžeme provést autorizaci k danému serveru.

Pro autorizaci slouží Metoda private void authorization(HttpsURLConnection con), která se na základě zadaného přihlašovacího jména a hesla pokusí připojit:

Pokud se připojení nezdaří, je vrácena chyba:

Server returned HTTP response code: 401 for URL: https://url

Pro ukázku použití je v Main umístěn kód, který načte obsah připojené url adresy:

Celý zdrojový kód je zde:

Comments (4)

Take by me zajimalo jak se pri HTTPS autorizaci/autentizaci(?) pouziva certifikat uzivatele, tzn. nechci jmeno a heslo, ale certifikat. Mohl bys to trochu popsat? Dik.

Nějak se mi nedaří přihlásit se na server.
Hází mi to java.io.IOException: Server returned HTTP response code: 411
když doplním hlavičku
con.setRequestProperty("Content-length", "0");
tak mi vyhodí
java.net.ProtocolException: Server redirected too many times (20)
Můžete někdo napsat, jak můžu poslat na server formulář (input ,hidden data), podobně jako bych z prohlížeče kliknul na submit a poslal formulář, a byl předtím přihlášený?

Ahoj,uvědomuji si, že komentáře jsou přes rok staré ale připojil bych se k žádost uživatele mpas, řeším stejný problém.Díky za jakoukoli odpověď

Ahoj, diky za zajimave namety na ruzne tema. Jeste by me zajimalo jak se pri HTTPS autorizaci/autentizaci(?) pouziva certifikat uzivatele, tzn. nechci jmeno a heslo, ale certifikat. Mohl bys to trochu popsat? Dik.

Add comment

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836