Skip to content

Commit 5e851e0

Browse files
committed
Remove JdbcOAuth2AuthorizationService.Mapper
- We should not introduce an unnecessary public API - It would need to be removed when Jackson 2 support was removed, but was required to configure Jackson 3 support - There are already existing interfaces that could be used - OAuth2AuthorizationRowMapper & OAuth2AuthorizationParametersMapper had unnecessary breaking changes by removing getter/setter for ObjectMapper - To prevent NoClassDefFoundErrors all optional (Jackson) dependencies need to be on different classes & we wish to preserve the existing accessors for ObjectMapper which is this uses subclasses - With added TestAuthenticationTokenMixin support, no need to explicitly add it in tests
1 parent 803936c commit 5e851e0

File tree

10 files changed

+198
-307
lines changed

10 files changed

+198
-307
lines changed

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/JwkSetTests.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.junit.jupiter.api.BeforeAll;
2525
import org.junit.jupiter.api.Test;
2626
import org.junit.jupiter.api.extension.ExtendWith;
27-
import tools.jackson.databind.json.JsonMapper;
2827

2928
import org.springframework.beans.factory.annotation.Autowired;
3029
import org.springframework.context.annotation.Bean;
@@ -35,7 +34,6 @@
3534
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
3635
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
3736
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
38-
import org.springframework.security.authentication.TestingAuthenticationToken;
3937
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
4038
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
4139
import org.springframework.security.config.test.SpringTestContext;
@@ -45,7 +43,6 @@
4543
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
4644
import org.springframework.security.oauth2.server.authorization.client.JdbcRegisteredClientRepository;
4745
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
48-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
4946
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
5047
import org.springframework.test.web.servlet.MockMvc;
5148

@@ -142,11 +139,7 @@ static class AuthorizationServerConfiguration {
142139
@Bean
143140
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
144141
RegisteredClientRepository registeredClientRepository) {
145-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
146-
registeredClientRepository);
147-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
148-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
149-
return authorizationService;
142+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
150143
}
151144

152145
@Bean
@@ -164,26 +157,6 @@ JWKSource<SecurityContext> jwkSource() {
164157
return jwkSource;
165158
}
166159

167-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
168-
169-
RowMapper(RegisteredClientRepository registeredClientRepository) {
170-
super(registeredClientRepository);
171-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
172-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
173-
}
174-
175-
}
176-
177-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
178-
179-
ParametersMapper() {
180-
super();
181-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
182-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
183-
}
184-
185-
}
186-
187160
}
188161

189162
@EnableWebSecurity

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2AuthorizationCodeGrantTests.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import org.junit.jupiter.api.Test;
4747
import org.junit.jupiter.api.extension.ExtendWith;
4848
import org.mockito.ArgumentCaptor;
49-
import tools.jackson.databind.json.JsonMapper;
5049

5150
import org.springframework.beans.factory.annotation.Autowired;
5251
import org.springframework.context.annotation.Bean;
@@ -117,7 +116,6 @@
117116
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
118117
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
119118
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
120-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
121119
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
122120
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
123121
import org.springframework.security.oauth2.server.authorization.token.DelegatingOAuth2TokenGenerator;
@@ -1240,11 +1238,7 @@ static class AuthorizationServerConfiguration {
12401238
@Bean
12411239
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
12421240
RegisteredClientRepository registeredClientRepository) {
1243-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
1244-
registeredClientRepository);
1245-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
1246-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
1247-
return authorizationService;
1241+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
12481242
}
12491243

12501244
@Bean
@@ -1297,26 +1291,6 @@ PasswordEncoder passwordEncoder() {
12971291
return NoOpPasswordEncoder.getInstance();
12981292
}
12991293

1300-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
1301-
1302-
RowMapper(RegisteredClientRepository registeredClientRepository) {
1303-
super(registeredClientRepository);
1304-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
1305-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
1306-
}
1307-
1308-
}
1309-
1310-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
1311-
1312-
ParametersMapper() {
1313-
super();
1314-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
1315-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
1316-
}
1317-
1318-
}
1319-
13201294
}
13211295

13221296
@EnableWebSecurity

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2ClientCredentialsGrantTests.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import org.junit.jupiter.api.Test;
4141
import org.junit.jupiter.api.extension.ExtendWith;
4242
import org.mockito.ArgumentCaptor;
43-
import tools.jackson.databind.json.JsonMapper;
4443

4544
import org.springframework.beans.factory.annotation.Autowired;
4645
import org.springframework.context.annotation.Bean;
@@ -53,7 +52,6 @@
5352
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
5453
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
5554
import org.springframework.security.authentication.AuthenticationProvider;
56-
import org.springframework.security.authentication.TestingAuthenticationToken;
5755
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
5856
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
5957
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
@@ -94,7 +92,6 @@
9492
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
9593
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
9694
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
97-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
9895
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
9996
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
10097
import org.springframework.security.oauth2.server.authorization.token.JwtEncodingContext;
@@ -534,11 +531,7 @@ static class AuthorizationServerConfiguration {
534531
@Bean
535532
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
536533
RegisteredClientRepository registeredClientRepository) {
537-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
538-
registeredClientRepository);
539-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
540-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
541-
return authorizationService;
534+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
542535
}
543536

544537
@Bean
@@ -570,26 +563,6 @@ PasswordEncoder passwordEncoder() {
570563
return NoOpPasswordEncoder.getInstance();
571564
}
572565

573-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
574-
575-
RowMapper(RegisteredClientRepository registeredClientRepository) {
576-
super(registeredClientRepository);
577-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
578-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
579-
}
580-
581-
}
582-
583-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
584-
585-
ParametersMapper() {
586-
super();
587-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
588-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
589-
}
590-
591-
}
592-
593566
}
594567

595568
@EnableWebSecurity

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2RefreshTokenGrantTests.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import org.junit.jupiter.api.BeforeAll;
4040
import org.junit.jupiter.api.Test;
4141
import org.junit.jupiter.api.extension.ExtendWith;
42-
import tools.jackson.databind.json.JsonMapper;
4342

4443
import org.springframework.beans.factory.annotation.Autowired;
4544
import org.springframework.context.annotation.Bean;
@@ -57,7 +56,6 @@
5756
import org.springframework.mock.http.client.MockClientHttpResponse;
5857
import org.springframework.mock.web.MockHttpServletResponse;
5958
import org.springframework.security.authentication.AuthenticationProvider;
60-
import org.springframework.security.authentication.TestingAuthenticationToken;
6159
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
6260
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
6361
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
@@ -99,7 +97,6 @@
9997
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
10098
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
10199
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
102-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
103100
import org.springframework.security.oauth2.server.authorization.token.JwtEncodingContext;
104101
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenCustomizer;
105102
import org.springframework.security.web.SecurityFilterChain;
@@ -468,11 +465,7 @@ static class AuthorizationServerConfiguration {
468465
@Bean
469466
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
470467
RegisteredClientRepository registeredClientRepository) {
471-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
472-
registeredClientRepository);
473-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
474-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
475-
return authorizationService;
468+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
476469
}
477470

478471
@Bean
@@ -513,26 +506,6 @@ PasswordEncoder passwordEncoder() {
513506
return NoOpPasswordEncoder.getInstance();
514507
}
515508

516-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
517-
518-
RowMapper(RegisteredClientRepository registeredClientRepository) {
519-
super(registeredClientRepository);
520-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
521-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
522-
}
523-
524-
}
525-
526-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
527-
528-
ParametersMapper() {
529-
super();
530-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
531-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
532-
}
533-
534-
}
535-
536509
}
537510

538511
@EnableWebSecurity

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2TokenIntrospectionTests.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import org.junit.jupiter.api.Test;
3636
import org.junit.jupiter.api.extension.ExtendWith;
3737
import org.mockito.ArgumentCaptor;
38-
import tools.jackson.databind.json.JsonMapper;
3938

4039
import org.springframework.beans.factory.annotation.Autowired;
4140
import org.springframework.context.annotation.Bean;
@@ -52,7 +51,6 @@
5251
import org.springframework.mock.http.client.MockClientHttpResponse;
5352
import org.springframework.mock.web.MockHttpServletResponse;
5453
import org.springframework.security.authentication.AuthenticationProvider;
55-
import org.springframework.security.authentication.TestingAuthenticationToken;
5654
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
5755
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
5856
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
@@ -88,7 +86,6 @@
8886
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
8987
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
9088
import org.springframework.security.oauth2.server.authorization.http.converter.OAuth2TokenIntrospectionHttpMessageConverter;
91-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
9289
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
9390
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
9491
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
@@ -508,11 +505,7 @@ static class AuthorizationServerConfiguration {
508505
@Bean
509506
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
510507
RegisteredClientRepository registeredClientRepository) {
511-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
512-
registeredClientRepository);
513-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
514-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
515-
return authorizationService;
508+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
516509
}
517510

518511
@Bean
@@ -550,26 +543,6 @@ PasswordEncoder passwordEncoder() {
550543
return NoOpPasswordEncoder.getInstance();
551544
}
552545

553-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
554-
555-
RowMapper(RegisteredClientRepository registeredClientRepository) {
556-
super(registeredClientRepository);
557-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
558-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
559-
}
560-
561-
}
562-
563-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
564-
565-
ParametersMapper() {
566-
super();
567-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
568-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
569-
}
570-
571-
}
572-
573546
}
574547

575548
@EnableWebSecurity

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2TokenRevocationTests.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.junit.jupiter.api.Test;
3232
import org.junit.jupiter.api.extension.ExtendWith;
3333
import org.mockito.ArgumentCaptor;
34-
import tools.jackson.databind.json.JsonMapper;
3534

3635
import org.springframework.beans.factory.annotation.Autowired;
3736
import org.springframework.context.annotation.Bean;
@@ -44,7 +43,6 @@
4443
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
4544
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
4645
import org.springframework.security.authentication.AuthenticationProvider;
47-
import org.springframework.security.authentication.TestingAuthenticationToken;
4846
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
4947
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
5048
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration;
@@ -72,7 +70,6 @@
7270
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
7371
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
7472
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
75-
import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin;
7673
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
7774
import org.springframework.security.oauth2.server.authorization.web.authentication.OAuth2TokenRevocationAuthenticationConverter;
7875
import org.springframework.security.web.SecurityFilterChain;
@@ -317,11 +314,7 @@ static class AuthorizationServerConfiguration {
317314
@Bean
318315
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations,
319316
RegisteredClientRepository registeredClientRepository) {
320-
JdbcOAuth2AuthorizationService authorizationService = new JdbcOAuth2AuthorizationService(jdbcOperations,
321-
registeredClientRepository);
322-
authorizationService.setAuthorizationRowMapper(new RowMapper(registeredClientRepository));
323-
authorizationService.setAuthorizationParametersMapper(new ParametersMapper());
324-
return authorizationService;
317+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
325318
}
326319

327320
@Bean
@@ -348,26 +341,6 @@ PasswordEncoder passwordEncoder() {
348341
return NoOpPasswordEncoder.getInstance();
349342
}
350343

351-
static class RowMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationRowMapper {
352-
353-
RowMapper(RegisteredClientRepository registeredClientRepository) {
354-
super(registeredClientRepository);
355-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
356-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
357-
}
358-
359-
}
360-
361-
static class ParametersMapper extends JdbcOAuth2AuthorizationService.OAuth2AuthorizationParametersMapper {
362-
363-
ParametersMapper() {
364-
super();
365-
setMapper(new JdbcOAuth2AuthorizationService.JacksonDelegate(JsonMapper.builder()
366-
.addMixIn(TestingAuthenticationToken.class, TestingAuthenticationTokenMixin.class)));
367-
}
368-
369-
}
370-
371344
}
372345

373346
@EnableWebSecurity

0 commit comments

Comments
 (0)