Skip to content

Commit e5f7c63

Browse files
committed
refactor(spring-security): refactor spring security and spring from 5.x to 6.x with spring boot upgrade to 3.x
With spring boot upgrade, spring security also upgrades from 5.x to 6.x. As per the migration [steps](https://www.baeldung.com/spring-security-migrate-5-to-6), `WebSecurityConfigurerAdapter` has been removed. So, it is not required to be extended, instead bean can be registered. `WebMvcConfigurerAdapter` class has been deprecated in Spring 5.0 and subsequently removed from spring 6.0. So, replacing it with `WebMvcConfigurer` interface for direct implementation. https://docs.spring.io/spring-framework/docs/5.0.0.RELEASE/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.html
1 parent 6936eea commit e5f7c63

File tree

2 files changed

+20
-32
lines changed

2 files changed

+20
-32
lines changed

fiat-api/src/main/java/com/netflix/spinnaker/fiat/shared/FiatAuthenticationConfig.java

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
3737
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
3838
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
39-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
39+
import org.springframework.security.web.SecurityFilterChain;
4040
import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
4141
import org.springframework.security.web.authentication.AuthenticationConverter;
4242
import retrofit2.Retrofit;
@@ -92,10 +92,24 @@ AuthenticationConverter defaultAuthenticationConverter() {
9292
return new AuthenticatedRequestAuthenticationConverter();
9393
}
9494

95+
// Removing bean of WebSecurityConfigurerAdapter, as in spring security 6.0 it is no more
96+
// required.
97+
// https://github.com/spring-projects/spring-security/pull/11923
98+
// https://www.baeldung.com/spring-security-migrate-5-to-6#2-websecurityconfigureradapter
9599
@Bean
96-
FiatWebSecurityConfigurerAdapter fiatSecurityConfig(
97-
FiatStatus fiatStatus, AuthenticationConverter authenticationConverter) {
98-
return new FiatWebSecurityConfigurerAdapter(fiatStatus, authenticationConverter);
100+
public SecurityFilterChain configure(
101+
HttpSecurity http, FiatStatus fiatStatus, AuthenticationConverter authenticationConverter)
102+
throws Exception {
103+
return http.servletApi()
104+
.and()
105+
.exceptionHandling()
106+
.and()
107+
.anonymous()
108+
.and()
109+
.addFilterBefore(
110+
new FiatAuthenticationFilter(fiatStatus, authenticationConverter),
111+
AnonymousAuthenticationFilter.class)
112+
.build();
99113
}
100114

101115
@Bean
@@ -104,29 +118,4 @@ FiatAccessDeniedExceptionHandler fiatAccessDeniedExceptionHandler(
104118
ExceptionMessageDecorator exceptionMessageDecorator) {
105119
return new FiatAccessDeniedExceptionHandler(exceptionMessageDecorator);
106120
}
107-
108-
private static class FiatWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
109-
private final FiatStatus fiatStatus;
110-
private final AuthenticationConverter authenticationConverter;
111-
112-
private FiatWebSecurityConfigurerAdapter(
113-
FiatStatus fiatStatus, AuthenticationConverter authenticationConverter) {
114-
super(true);
115-
this.fiatStatus = fiatStatus;
116-
this.authenticationConverter = authenticationConverter;
117-
}
118-
119-
@Override
120-
protected void configure(HttpSecurity http) throws Exception {
121-
http.servletApi()
122-
.and()
123-
.exceptionHandling()
124-
.and()
125-
.anonymous()
126-
.and()
127-
.addFilterBefore(
128-
new FiatAuthenticationFilter(fiatStatus, authenticationConverter),
129-
AnonymousAuthenticationFilter.class);
130-
}
131-
}
132121
}

fiat-web/src/main/java/com/netflix/spinnaker/fiat/config/FiatConfig.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@
4040
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
4141
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
4242
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
43-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
43+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
4444

4545
@Configuration
4646
@Import({RetrofitConfig.class, PluginsAutoConfiguration.class})
4747
@EnableConfigurationProperties(FiatServerConfigurationProperties.class)
48-
public class FiatConfig extends WebMvcConfigurerAdapter {
48+
public class FiatConfig implements WebMvcConfigurer {
4949

5050
@Autowired private Registry registry;
5151

@@ -60,7 +60,6 @@ public void addInterceptors(InterceptorRegistry registry) {
6060

6161
@Override
6262
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
63-
super.configureContentNegotiation(configurer);
6463
configurer.favorPathExtension(false).defaultContentType(MediaType.APPLICATION_JSON);
6564
}
6665

0 commit comments

Comments
 (0)