4040import org .springframework .jdbc .datasource .embedded .EmbeddedDatabase ;
4141import org .springframework .jdbc .datasource .embedded .EmbeddedDatabaseBuilder ;
4242import org .springframework .jdbc .datasource .embedded .EmbeddedDatabaseType ;
43- import org .springframework .security .crypto .factory .PasswordEncoderFactories ;
44- import org .springframework .security .crypto .password .NoOpPasswordEncoder ;
45- import org .springframework .security .crypto .password .PasswordEncoder ;
4643import org .springframework .security .jackson2 .SecurityJackson2Modules ;
4744import org .springframework .security .oauth2 .core .AuthorizationGrantType ;
4845import org .springframework .security .oauth2 .core .ClientAuthenticationMethod ;
5754import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
5855import static org .mockito .ArgumentMatchers .any ;
5956import static org .mockito .ArgumentMatchers .anyInt ;
60- import static org .mockito .ArgumentMatchers .anyString ;
61- import static org .mockito .ArgumentMatchers .eq ;
6257import static org .mockito .Mockito .spy ;
6358import static org .mockito .Mockito .verify ;
64- import static org .mockito .Mockito .verifyNoInteractions ;
6559
6660/**
6761 * Tests for {@link JdbcRegisteredClientRepository}.
@@ -77,27 +71,12 @@ public class JdbcRegisteredClientRepositoryTests {
7771 private EmbeddedDatabase db ;
7872 private JdbcOperations jdbcOperations ;
7973 private JdbcRegisteredClientRepository registeredClientRepository ;
80- private PasswordEncoder passwordEncoder ;
8174
8275 @ Before
8376 public void setUp () {
8477 this .db = createDb (OAUTH2_REGISTERED_CLIENT_SCHEMA_SQL_RESOURCE );
8578 this .jdbcOperations = new JdbcTemplate (this .db );
8679 this .registeredClientRepository = new JdbcRegisteredClientRepository (this .jdbcOperations );
87- this .passwordEncoder = spy (new PasswordEncoder () {
88- @ Override
89- public String encode (CharSequence rawPassword ) {
90- return NoOpPasswordEncoder .getInstance ().encode (rawPassword );
91- }
92-
93- @ Override
94- public boolean matches (CharSequence rawPassword , String encodedPassword ) {
95- return NoOpPasswordEncoder .getInstance ().matches (rawPassword , encodedPassword );
96- }
97- });
98- RegisteredClientParametersMapper registeredClientParametersMapper = new RegisteredClientParametersMapper ();
99- registeredClientParametersMapper .setPasswordEncoder (this .passwordEncoder );
100- this .registeredClientRepository .setRegisteredClientParametersMapper (registeredClientParametersMapper );
10180 }
10281
10382 @ After
@@ -167,7 +146,6 @@ public void saveWhenNewThenSaved() {
167146 this .registeredClientRepository .save (expectedRegisteredClient );
168147 RegisteredClient registeredClient = this .registeredClientRepository .findById (expectedRegisteredClient .getId ());
169148 assertThat (registeredClient ).isEqualTo (expectedRegisteredClient );
170- verify (this .passwordEncoder ).encode (anyString ());
171149 }
172150
173151 @ Test
@@ -177,15 +155,13 @@ public void saveWhenClientSecretNullThenSaved() {
177155 this .registeredClientRepository .save (expectedRegisteredClient );
178156 RegisteredClient registeredClient = this .registeredClientRepository .findById (expectedRegisteredClient .getId ());
179157 assertThat (registeredClient ).isEqualTo (expectedRegisteredClient );
180- verifyNoInteractions (this .passwordEncoder );
181158 }
182159
183160 @ Test
184161 public void saveLoadRegisteredClientWhenCustomStrategiesSetThenCalled () throws Exception {
185162 RowMapper <RegisteredClient > registeredClientRowMapper = spy (new RegisteredClientRowMapper ());
186163 this .registeredClientRepository .setRegisteredClientRowMapper (registeredClientRowMapper );
187164 RegisteredClientParametersMapper clientParametersMapper = new RegisteredClientParametersMapper ();
188- clientParametersMapper .setPasswordEncoder (this .passwordEncoder );
189165 Function <RegisteredClient , List <SqlParameterValue >> registeredClientParametersMapper = spy (clientParametersMapper );
190166 this .registeredClientRepository .setRegisteredClientParametersMapper (registeredClientParametersMapper );
191167
@@ -195,30 +171,6 @@ public void saveLoadRegisteredClientWhenCustomStrategiesSetThenCalled() throws E
195171 assertThat (result ).isEqualTo (registeredClient );
196172 verify (registeredClientRowMapper ).mapRow (any (), anyInt ());
197173 verify (registeredClientParametersMapper ).apply (any ());
198- verify (this .passwordEncoder ).encode (anyString ());
199- }
200-
201- // gh-389
202- @ Test
203- public void saveWhenClientSecretAlreadyEncodedThenNotUpdated () {
204- PasswordEncoder passwordEncoder = spy (PasswordEncoderFactories .createDelegatingPasswordEncoder ());
205- RegisteredClientParametersMapper registeredClientParametersMapper = new RegisteredClientParametersMapper ();
206- registeredClientParametersMapper .setPasswordEncoder (passwordEncoder );
207- this .registeredClientRepository .setRegisteredClientParametersMapper (registeredClientParametersMapper );
208-
209- RegisteredClient originalRegisteredClient = TestRegisteredClients .registeredClient ().build ();
210- this .registeredClientRepository .save (originalRegisteredClient );
211- verify (passwordEncoder ).encode (eq (originalRegisteredClient .getClientSecret ()));
212-
213- RegisteredClient registeredClient = this .registeredClientRepository .findById (originalRegisteredClient .getId ());
214- assertThat (registeredClient ).isNotNull ();
215- assertThat (passwordEncoder .matches (originalRegisteredClient .getClientSecret (), registeredClient .getClientSecret ())).isTrue ();
216-
217- RegisteredClient updatedRegisteredClient = RegisteredClient .from (registeredClient ).clientSecret ("updated-client-secret" ).build ();
218- this .registeredClientRepository .save (updatedRegisteredClient );
219- updatedRegisteredClient = this .registeredClientRepository .findById (originalRegisteredClient .getId ());
220- assertThat (updatedRegisteredClient ).isNotNull ();
221- assertThat (passwordEncoder .matches (originalRegisteredClient .getClientSecret (), updatedRegisteredClient .getClientSecret ())).isTrue ();
222174 }
223175
224176 @ Test
@@ -270,17 +222,13 @@ public void findByClientIdWhenNotExistsThenNotFound() {
270222 @ Test
271223 public void tableDefinitionWhenCustomThenAbleToOverride () {
272224 EmbeddedDatabase db = createDb (OAUTH2_CUSTOM_REGISTERED_CLIENT_SCHEMA_SQL_RESOURCE );
273- RegisteredClientParametersMapper registeredClientParametersMapper = new RegisteredClientParametersMapper ();
274- registeredClientParametersMapper .setPasswordEncoder (this .passwordEncoder );
275225 CustomJdbcRegisteredClientRepository registeredClientRepository = new CustomJdbcRegisteredClientRepository (new JdbcTemplate (db ));
276- registeredClientRepository .setRegisteredClientParametersMapper (registeredClientParametersMapper );
277226 RegisteredClient registeredClient = TestRegisteredClients .registeredClient ().build ();
278227 registeredClientRepository .save (registeredClient );
279228 RegisteredClient foundRegisteredClient1 = registeredClientRepository .findById (registeredClient .getId ());
280229 assertThat (foundRegisteredClient1 ).isEqualTo (registeredClient );
281230 RegisteredClient foundRegisteredClient2 = registeredClientRepository .findByClientId (registeredClient .getClientId ());
282231 assertThat (foundRegisteredClient2 ).isEqualTo (registeredClient );
283- verify (this .passwordEncoder ).encode (anyString ());
284232 db .shutdown ();
285233 }
286234
0 commit comments