Update websocket integration docs

This commit is contained in:
ReGius-igmt 2024-07-18 20:54:10 +03:00 committed by Josh Cummings
parent f396109e12
commit 4a9a350ed0

View File

@ -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(authorizationManager);
AuthorizationChannelInterceptor authz = new AuthorizationChannelInterceptor(myAuthorizationRules); AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(applicationContext);
AuthorizationEventPublisher publisher = new SpringAuthorizationEventPublisher(this.context);
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(authorizationManager)
var authz: AuthorizationChannelInterceptor = AuthorizationChannelInterceptor(myAuthorizationRules) var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(applicationContext)
var publisher: AuthorizationEventPublisher = SpringAuthorizationEventPublisher(this.context)
authz.setAuthorizationEventPublisher(publisher) authz.setAuthorizationEventPublisher(publisher)
registration.interceptors(SecurityContextChannelInterceptor(), authz) registration.interceptors(SecurityContextChannelInterceptor(), authz)
} }