Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
Unit test af federated security
14-02-2014, 10:09 (Denne besked var sidst ændret: 14-02-2014, 10:20 af Ticalie.)
#1
Unit test af federated security
Hej,

Okay, har fået til opgave at lave unit test af vores egen implementation af federated login.

Vi bruger thinktecture identityserver 2 som STS, både live og linkedin som identity providers, og STS'en retunere JWT tokens. Det hele er lavet i ASP.NET mvc 4

Alt virker - det er jo dejligt!

Mit spørgsmål er, hvordan kan jeg dokumentere via unit test, at et login virker? Har søgt nettet tyndt, men synes ikke rigtigt at kunne finde noget, der hjælper mig på vej.

Nogen der ved noget om dette? Smile
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 11:54 (Denne besked var sidst ændret: 14-02-2014, 11:56 af jamenjamen.)
#2
RE: Unit test af federated security
Lav en unit test der er vil virke og en der vil faile? Virker ret så logisk.

Er det et studieprojekt eller arbejdsprojekt?
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 12:46
#3
RE: Unit test af federated security
En unit test tester jo en lille del uden en masse udenom, så det er nok ikke det, du vil. Det er nok mere en integrationstest eller systemtest du er ude efter, hvor du ser om det samlede hele fungerer.

Det lyder som om, det er et web system, så til det kan du bruge 'curl'.
Noget ala:
Kode:
$ curl --silent http://www.mysite.dk --data 'username=MyName&password=secret' | grep "Login fejlede"
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 13:11 (Denne besked var sidst ændret: 14-02-2014, 13:13 af Ticalie.)
#4
RE: Unit test af federated security
(14-02-2014, 11:54)jamenjamen Skrev: Lav en unit test der er vil virke og en der vil faile? Virker ret så logisk.

Er det et studieprojekt eller arbejdsprojekt?
Jojo - så langt er jeg med Smile Problemet er, at jeg ikke har styr på, hvordan jeg laver en der vil virke.
Data flow er: Frontend (Unauth'ed) -> STS (Login) -> Backend (Web api) (Token fra login).
Det, der i første gang skal checkes for er, om backend returnerer 200 ok, ved korret login, og 401 ved unauthed eller forkert login.
Det er et arbejdsprojekt.

(14-02-2014, 12:46)BlimBlamBlar Skrev: En unit test tester jo en lille del uden en masse udenom, så det er nok ikke det, du vil. Det er nok mere en integrationstest eller systemtest du er ude efter, hvor du ser om det samlede hele fungerer.

Det lyder som om, det er et web system, så til det kan du bruge 'curl'.
Noget ala:
Kode:
$ curl --silent http://www.mysite.dk --data 'username=MyName&password=secret' | grep "Login fejlede"
Det er også en lille del, der skal testes imo(?)
Det ville være super sweet, hvis jeg kunne bruge Studio 2012's unit test framework
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 13:17
#5
RE: Unit test af federated security
Back'end er MVC4 ? Så lav en unit test der smider et fungererende login ind til den action som tjekker, og en anden der smider et ikke fungerende login in.
Så vil du se hvad den returner. Derefter kan du så dybere ned og se hvad den funktion der tjekker loginet gør.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 13:26 (Denne besked var sidst ændret: 14-02-2014, 13:28 af Ticalie.)
#6
RE: Unit test af federated security
(14-02-2014, 13:17)jamenjamen Skrev: Back'end er MVC4 ? Så lav en unit test der smider et fungererende login ind til den action som tjekker, og en anden der smider et ikke fungerende login in.
Så vil du se hvad den returner. Derefter kan du så dybere ned og se hvad den funktion der tjekker loginet gør.


Kører jeg gennem frontend får jeg en returtype: System.Web.Mvc.ViewResult
Kode:
var controller = new HomeController();
HttpStatusCodeResult expected = new HttpStatusCodeResult(401);
var temp = controller.Contact();
Assert.AreEqual(expected, temp);
---


Kører jeg gennem backend får jeg: <br />http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name:TICALIE-LAPPY\\Ticalie<br />http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid:S-1-5-21-274348223-3570598454-2219843467-1000...
Kode:
var controller = new ValuesController();
HttpStatusCodeResult expected = new HttpStatusCodeResult(401);
var temp = controller.Get(5);
Assert.AreEqual(expected, temp);

Der er [Authorize] på ValuesController

Det, jeg særligt ikke forstår, er eksempel 2's retur værdi - der ville jeg tro det var en 401'er (Kan jeg også se i Fiddler at "result" er)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
14-02-2014, 14:38
#7
RE: Unit test af federated security
(14-02-2014, 13:11)Ticalie Skrev: Det er også en lille del, der skal testes imo(?)
Det er test af frontend, token generator, database lag og sikkert alt muligt andet....bestemt ikke nogen lille del (i unittest forstand), men definitioner er ligegyldige. Du kan teste simpelthen ved at lave et HTTP kald med korrekte (og forkerte) credentials og kigge på, hvad du fik tilbage.
Det må kunnes i alle test frameworks...nu kender jeg så bare ikke det, du nævnte.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)