Skip to content

Commit d19553e

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 Removing bean of WebSecurityConfigurerAdapter, as in spring security 6.0 it is no more required. spring-projects/spring-security#11923 https://www.baeldung.com/spring-security-migrate-5-to-6#2-websecurityconfigureradapter
1 parent 6936eea commit d19553e

File tree

2 files changed

+16
-32
lines changed

2 files changed

+16
-32
lines changed

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

Lines changed: 14 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;
@@ -93,9 +93,19 @@ AuthenticationConverter defaultAuthenticationConverter() {
9393
}
9494

9595
@Bean
96-
FiatWebSecurityConfigurerAdapter fiatSecurityConfig(
97-
FiatStatus fiatStatus, AuthenticationConverter authenticationConverter) {
98-
return new FiatWebSecurityConfigurerAdapter(fiatStatus, authenticationConverter);
96+
public SecurityFilterChain configure(
97+
HttpSecurity http, FiatStatus fiatStatus, AuthenticationConverter authenticationConverter)
98+
throws Exception {
99+
return http.servletApi()
100+
.and()
101+
.exceptionHandling()
102+
.and()
103+
.anonymous()
104+
.and()
105+
.addFilterBefore(
106+
new FiatAuthenticationFilter(fiatStatus, authenticationConverter),
107+
AnonymousAuthenticationFilter.class)
108+
.build();
99109
}
100110

101111
@Bean
@@ -104,29 +114,4 @@ FiatAccessDeniedExceptionHandler fiatAccessDeniedExceptionHandler(
104114
ExceptionMessageDecorator exceptionMessageDecorator) {
105115
return new FiatAccessDeniedExceptionHandler(exceptionMessageDecorator);
106116
}
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-
}
132117
}

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)