@@ -67,17 +67,17 @@ public function createUser(UserInterface $user)
67
67
*/
68
68
public function loadUserByUsername ($ username )
69
69
{
70
- if (!isset ($ this ->users [strtolower ($ username )])) {
71
- $ ex = new UsernameNotFoundException (sprintf ('Username "%s" does not exist. ' , $ username ));
72
- $ ex ->setUsername ($ username );
73
-
74
- throw $ ex ;
75
- }
76
-
77
- $ user = $ this ->users [strtolower ($ username )];
70
+ $ storedUser = $ this ->getUser ($ username );
78
71
79
- return new User ($ user ->getUsername (), $ user ->getPassword (), $ user ->getRoles (), $ user ->isEnabled (), $ user ->isAccountNonExpired (),
80
- $ user ->isCredentialsNonExpired (), $ user ->isAccountNonLocked ());
72
+ return new User (
73
+ $ storedUser ->getUsername (),
74
+ $ storedUser ->getPassword (),
75
+ $ storedUser ->getRoles (),
76
+ $ storedUser ->isEnabled (),
77
+ $ storedUser ->isAccountNonExpired (),
78
+ $ storedUser ->isCredentialsNonExpired (),
79
+ $ storedUser ->isAccountNonLocked ()
80
+ );
81
81
}
82
82
83
83
/**
@@ -89,7 +89,17 @@ public function refreshUser(UserInterface $user)
89
89
throw new UnsupportedUserException (sprintf ('Instances of "%s" are not supported. ' , get_class ($ user )));
90
90
}
91
91
92
- return $ this ->loadUserByUsername ($ user ->getUsername ());
92
+ $ storedUser = $ this ->getUser ($ user ->getUsername ());
93
+
94
+ return new User (
95
+ $ storedUser ->getUsername (),
96
+ $ storedUser ->getPassword (),
97
+ $ storedUser ->getRoles (),
98
+ $ storedUser ->isEnabled (),
99
+ $ storedUser ->isAccountNonExpired (),
100
+ $ storedUser ->isCredentialsNonExpired () && $ storedUser ->getPassword () === $ user ->getPassword (),
101
+ $ storedUser ->isAccountNonLocked ()
102
+ );
93
103
}
94
104
95
105
/**
@@ -99,4 +109,20 @@ public function supportsClass($class)
99
109
{
100
110
return $ class === 'Symfony\Component\Security\Core\User\User ' ;
101
111
}
112
+
113
+ /**
114
+ * @param string $username
115
+ * @return User
116
+ */
117
+ private function getUser ($ username )
118
+ {
119
+ if (!isset ($ this ->users [strtolower ($ username )])) {
120
+ $ ex = new UsernameNotFoundException (sprintf ('Username "%s" does not exist. ' , $ username ));
121
+ $ ex ->setUsername ($ username );
122
+
123
+ throw $ ex ;
124
+ }
125
+
126
+ return $ this ->users [strtolower ($ username )];
127
+ }
102
128
}
0 commit comments