AuthenticatorTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace fphammerle\yii2\auth\clientcert\tests;
  3. use \fphammerle\yii2\auth\clientcert\Authenticator;
  4. use \fphammerle\yii2\auth\clientcert\Subject;
  5. use \fphammerle\yii2\auth\clientcert\migrations;
  6. class AuthenticatorTest extends TestCase
  7. {
  8. protected $alice;
  9. protected $bob;
  10. protected function setUp()
  11. {
  12. $this->mockApplication();
  13. ob_start();
  14. (new migrations\CreateSubjectTable)->up();
  15. ob_end_clean();
  16. $this->alice = new models\User('alice');
  17. $this->bob = new models\User('bob');
  18. $this->assertTrue($this->alice->save());
  19. $this->assertTrue($this->bob->save());
  20. (new Subject($this->alice, 'CN=Alice,C=AT'))->save();
  21. (new Subject($this->alice, 'CN=Alice,O=Office,C=AT'))->save();
  22. (new Subject($this->bob, 'CN=Bob,C=AT'))->save();
  23. $this->assertNull(self::getIdentity());
  24. }
  25. public static function getIdentity()
  26. {
  27. return \Yii::$app->user->getIdentity();
  28. }
  29. public function testLoginByDN()
  30. {
  31. $a = new Authenticator;
  32. $this->assertNull(self::getIdentity());
  33. $u = $a->loginByDistinguishedName('CN=Alice,C=AT');
  34. $this->assertEquals($this->alice->id, $u->id);
  35. $this->assertEquals($this->alice->id, self::getIdentity()->id);
  36. $u = $a->loginByDistinguishedName('CN=Alice,O=Secret,C=AT');
  37. $this->assertNull($u);
  38. $this->assertEquals($this->alice->id, self::getIdentity()->id);
  39. $u = $a->loginByDistinguishedName('CN=Bob,C=AT');
  40. $this->assertEquals($this->bob->id, $u->id);
  41. $this->assertEquals($this->bob->id, self::getIdentity()->id);
  42. $u = $a->loginByDistinguishedName('');
  43. $this->assertNull($u);
  44. $this->assertEquals($this->bob->id, self::getIdentity()->id);
  45. $u = $a->loginByDistinguishedName(NULL);
  46. $this->assertNull($u);
  47. $this->assertEquals($this->bob->id, self::getIdentity()->id);
  48. }
  49. }