Closed
Description
Describe the bug
This line session.getAttributes()
throws NPE, if we have WebSession bean configuration like this to disable WebSession:
@Bean
fun webSessionManager(): WebSessionManager {
// Emulate SessionCreationPolicy.STATELESS
return WebSessionManager { exchange: ServerWebExchange? -> Mono.empty() }
}
Expected behavior
I thing we may do null-safety when we are trying to call getAuthorizedClients in this place with nullable session.
Configuration
Spring Cloud Gateway.
@Bean
fun authorizedClientManager(
clientRegistrationRepository: ReactiveClientRegistrationRepository,
authorizedClientRepository: ServerOAuth2AuthorizedClientRepository
): ReactiveOAuth2AuthorizedClientManager {
val authorizedClientProvider = ReactiveOAuth2AuthorizedClientProviderBuilder
.builder()
.clientCredentials()
.build()
val authorizedClientManager = DefaultReactiveOAuth2AuthorizedClientManager(
clientRegistrationRepository, authorizedClientRepository
)
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider)
return authorizedClientManager
}
@Bean
fun springSecurityFilterChainNonProd(
httpSecurity: ServerHttpSecurity,
someIntrospector: SomeIntrospector,
): SecurityWebFilterChain? {
return httpSecurity
.cors(Customizer.withDefaults())
.authorizeExchange { auth ->
auth.anyExchange().authenticated()
}
.oauth2ResourceServer { oauth2 ->
oauth2.opaqueToken {
it.introspector(someIntrospector)
}
}
.csrf { csrf -> csrf.disable() }
.logout { logout -> logout.disable() }
.build()
}