|
@@ -365,6 +365,15 @@ Java::
|
|
@Configuration
|
|
@Configuration
|
|
public class WebSocketSecurityConfig implements WebSocketMessageBrokerConfigurer {
|
|
public class WebSocketSecurityConfig implements WebSocketMessageBrokerConfigurer {
|
|
|
|
|
|
|
|
+ private final ApplicationContext applicationContext;
|
|
|
|
+
|
|
|
|
+ private final AuthorizationManager<Message<?>> authorizationManager;
|
|
|
|
+
|
|
|
|
+ public WebSocketSecurityConfig(ApplicationContext applicationContext, AuthorizationManager<Message<?>> authorizationManager) {
|
|
|
|
+ this.applicationContext = applicationContext;
|
|
|
|
+ this.authorizationManager = authorizationManager;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
|
argumentResolvers.add(new AuthenticationPrincipalArgumentResolver());
|
|
argumentResolvers.add(new AuthenticationPrincipalArgumentResolver());
|
|
@@ -372,9 +381,8 @@ public class WebSocketSecurityConfig implements WebSocketMessageBrokerConfigurer
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void configureClientInboundChannel(ChannelRegistration registration) {
|
|
public void configureClientInboundChannel(ChannelRegistration registration) {
|
|
- AuthorizationManager<Message<?>> myAuthorizationRules = AuthenticatedAuthorizationManager.authenticated();
|
|
|
|
- AuthorizationChannelInterceptor authz = new AuthorizationChannelInterceptor(myAuthorizationRules);
|
|
|
|
- AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(this.context);
|
|
|
|
|
|
+ AuthorizationChannelInterceptor authz = new AuthorizationChannelInterceptor(authorizationManager);
|
|
|
|
+ AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(applicationContext);
|
|
authz.setAuthorizationEventPublisher(publisher);
|
|
authz.setAuthorizationEventPublisher(publisher);
|
|
registration.interceptors(new SecurityContextChannelInterceptor(), authz);
|
|
registration.interceptors(new SecurityContextChannelInterceptor(), authz);
|
|
}
|
|
}
|
|
@@ -386,7 +394,7 @@ Kotlin::
|
|
[source,kotlin,role="secondary"]
|
|
[source,kotlin,role="secondary"]
|
|
----
|
|
----
|
|
@Configuration
|
|
@Configuration
|
|
-open class WebSocketSecurityConfig : WebSocketMessageBrokerConfigurer {
|
|
|
|
|
|
+open class WebSocketSecurityConfig(val applicationContext: ApplicationContext, val authorizationManager: AuthorizationManager<Message<*>>) : WebSocketMessageBrokerConfigurer {
|
|
@Override
|
|
@Override
|
|
override fun addArgumentResolvers(argumentResolvers: List<HandlerMethodArgumentResolver>) {
|
|
override fun addArgumentResolvers(argumentResolvers: List<HandlerMethodArgumentResolver>) {
|
|
argumentResolvers.add(AuthenticationPrincipalArgumentResolver())
|
|
argumentResolvers.add(AuthenticationPrincipalArgumentResolver())
|
|
@@ -394,9 +402,8 @@ open class WebSocketSecurityConfig : WebSocketMessageBrokerConfigurer {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
override fun configureClientInboundChannel(registration: ChannelRegistration) {
|
|
override fun configureClientInboundChannel(registration: ChannelRegistration) {
|
|
- var myAuthorizationRules: AuthorizationManager<Message<*>> = AuthenticatedAuthorizationManager.authenticated()
|
|
|
|
- var authz: AuthorizationChannelInterceptor = AuthorizationChannelInterceptor(myAuthorizationRules)
|
|
|
|
- var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(this.context)
|
|
|
|
|
|
+ var authz: AuthorizationChannelInterceptor = AuthorizationChannelInterceptor(authorizationManager)
|
|
|
|
+ var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(applicationContext)
|
|
authz.setAuthorizationEventPublisher(publisher)
|
|
authz.setAuthorizationEventPublisher(publisher)
|
|
registration.interceptors(SecurityContextChannelInterceptor(), authz)
|
|
registration.interceptors(SecurityContextChannelInterceptor(), authz)
|
|
}
|
|
}
|