33namespace SilverStripe \Security \Tests ;
44
55use Page ;
6- use PageController ;
76use SilverStripe \Control \Controller ;
87use SilverStripe \Control \Director ;
98use SilverStripe \Control \HTTPRequest ;
@@ -615,34 +614,21 @@ public function testUnsuccessfulLoginAttempts()
615614 /* UNSUCCESSFUL ATTEMPTS WITH WRONG PASSWORD FOR EXISTING USER ARE LOGGED */
616615 $ this ->doTestLoginForm ('testuser@example.com ' , 'wrongpassword ' );
617616 /** @var LoginAttempt $attempt */
618- $ attempt = DataObject::get_one (
619- LoginAttempt::class,
620- array (
621- '"LoginAttempt"."Email" ' => 'testuser@example.com '
622- )
623- );
617+ $ attempt = LoginAttempt::getByEmail ('testuser@example.com ' )->first ();
624618 $ this ->assertInstanceOf (LoginAttempt::class, $ attempt );
625- $ member = DataObject::get_one (
626- Member::class,
627- array (
628- '"Member"."Email" ' => 'testuser@example.com '
629- )
630- );
619+ $ member = Member::get ()->filter ('Email ' , 'testuser@example.com ' )->first ();
631620 $ this ->assertEquals ($ attempt ->Status , 'Failure ' );
632- $ this ->assertEquals ($ attempt ->Email , 'testuser@example.com ' );
621+ $ this ->assertEmpty ($ attempt ->Email ); // Doesn't store potentially sensitive data
622+ $ this ->assertEquals ($ attempt ->EmailHashed , sha1 ('testuser@example.com ' ));
633623 $ this ->assertEquals ($ attempt ->Member ()->toMap (), $ member ->toMap ());
634624
635625 /* UNSUCCESSFUL ATTEMPTS WITH NONEXISTING USER ARE LOGGED */
636626 $ this ->doTestLoginForm ('wronguser@silverstripe.com ' , 'wrongpassword ' );
637- $ attempt = DataObject::get_one (
638- LoginAttempt::class,
639- array (
640- '"LoginAttempt"."Email" ' => 'wronguser@silverstripe.com '
641- )
642- );
643- $ this ->assertTrue (is_object ($ attempt ));
627+ $ attempt = LoginAttempt::getByEmail ('wronguser@silverstripe.com ' )->first ();
628+ $ this ->assertInstanceOf (LoginAttempt::class, $ attempt );
644629 $ this ->assertEquals ($ attempt ->Status , 'Failure ' );
645- $ this ->assertEquals ($ attempt ->Email , 'wronguser@silverstripe.com ' );
630+ $ this ->assertEmpty ($ attempt ->Email ); // Doesn't store potentially sensitive data
631+ $ this ->assertEquals ($ attempt ->EmailHashed , sha1 ('wronguser@silverstripe.com ' ));
646632 $ this ->assertNotEmpty ($ this ->getValidationResult ()->getMessages (), 'An invalid email returns a message. ' );
647633 }
648634
@@ -653,22 +639,12 @@ public function testSuccessfulLoginAttempts()
653639 /* SUCCESSFUL ATTEMPTS ARE LOGGED */
654640 $ this ->doTestLoginForm ('testuser@example.com ' , '1nitialPassword ' );
655641 /** @var LoginAttempt $attempt */
656- $ attempt = DataObject::get_one (
657- LoginAttempt::class,
658- array (
659- '"LoginAttempt"."Email" ' => 'testuser@example.com '
660- )
661- );
662- /** @var Member $member */
663- $ member = DataObject::get_one (
664- Member::class,
665- array (
666- '"Member"."Email" ' => 'testuser@example.com '
667- )
668- );
669- $ this ->assertTrue (is_object ($ attempt ));
642+ $ attempt = LoginAttempt::getByEmail ('testuser@example.com ' )->first ();
643+ $ member = Member::get ()->filter ('Email ' , 'testuser@example.com ' )->first ();
644+ $ this ->assertInstanceOf (LoginAttempt::class, $ attempt );
670645 $ this ->assertEquals ($ attempt ->Status , 'Success ' );
671- $ this ->assertEquals ($ attempt ->Email , 'testuser@example.com ' );
646+ $ this ->assertEmpty ($ attempt ->Email ); // Doesn't store potentially sensitive data
647+ $ this ->assertEquals ($ attempt ->EmailHashed , sha1 ('testuser@example.com ' ));
672648 $ this ->assertEquals ($ attempt ->Member ()->toMap (), $ member ->toMap ());
673649 }
674650
@@ -725,6 +701,7 @@ public function testGetResponseController()
725701
726702 // Ensure page shares the same controller as security
727703 $ securityClass = Config::inst ()->get (Security::class, 'page_class ' );
704+ /** @var Page $securityPage */
728705 $ securityPage = new $ securityClass ();
729706 $ this ->assertInstanceOf ($ securityPage ->getControllerName (), $ result );
730707 $ this ->assertEquals ($ request , $ result ->getRequest ());
0 commit comments