@@ -365,16 +365,24 @@ Java::
365
365
@Configuration
366
366
public class WebSocketSecurityConfig implements WebSocketMessageBrokerConfigurer {
367
367
368
+ private final ApplicationContext applicationContext;
369
+
370
+ private final AuthorizationManager<Message<?>> authorizationManager;
371
+
372
+ public WebSocketSecurityConfig(ApplicationContext applicationContext, AuthorizationManager<Message<?>> authorizationManager) {
373
+ this.applicationContext = applicationContext;
374
+ this.authorizationManager = authorizationManager;
375
+ }
376
+
368
377
@Override
369
378
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
370
379
argumentResolvers.add(new AuthenticationPrincipalArgumentResolver());
371
380
}
372
381
373
382
@Override
374
383
public void configureClientInboundChannel(ChannelRegistration registration) {
375
- AuthorizationManager<Message<?>> myAuthorizationRules = AuthenticatedAuthorizationManager.authenticated();
376
- AuthorizationChannelInterceptor authz = new AuthorizationChannelInterceptor(myAuthorizationRules);
377
- AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(this.context);
384
+ AuthorizationChannelInterceptor authz = new AuthorizationChannelInterceptor(authorizationManager);
385
+ AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(applicationContext);
378
386
authz.setAuthorizationEventPublisher(publisher);
379
387
registration.interceptors(new SecurityContextChannelInterceptor(), authz);
380
388
}
@@ -386,17 +394,16 @@ Kotlin::
386
394
[source,kotlin,role="secondary"]
387
395
----
388
396
@Configuration
389
- open class WebSocketSecurityConfig : WebSocketMessageBrokerConfigurer {
397
+ open class WebSocketSecurityConfig(val applicationContext: ApplicationContext, val authorizationManager: AuthorizationManager<Message<*>>) : WebSocketMessageBrokerConfigurer {
390
398
@Override
391
399
override fun addArgumentResolvers(argumentResolvers: List<HandlerMethodArgumentResolver>) {
392
400
argumentResolvers.add(AuthenticationPrincipalArgumentResolver())
393
401
}
394
402
395
403
@Override
396
404
override fun configureClientInboundChannel(registration: ChannelRegistration) {
397
- var myAuthorizationRules: AuthorizationManager<Message<*>> = AuthenticatedAuthorizationManager.authenticated()
398
- var authz: AuthorizationChannelInterceptor = AuthorizationChannelInterceptor(myAuthorizationRules)
399
- var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(this.context)
405
+ var authz: AuthorizationChannelInterceptor = AuthorizationChannelInterceptor(authorizationManager)
406
+ var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(applicationContext)
400
407
authz.setAuthorizationEventPublisher(publisher)
401
408
registration.interceptors(SecurityContextChannelInterceptor(), authz)
402
409
}
0 commit comments