Я использую весеннюю загрузку websocket (stomp) и добавляю к ней безопасность.Я отправляю сообщение от клиента и получаю исключение AccessDeniedException
, как я могу обработать это исключение (может быть, все исключения через websocket) и красивое сообщение клиента ответа.
Я делаю эту работу в mvc use @ControllerAdvice
как насчет websocket?
@Configuration
public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer {
@Override
protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) {
messages
.simpDestMatchers("/app/**").authenticated()
.simpSubscribeDestMatchers("/user/**").authenticated()
.simpTypeMatchers(CONNECT, UNSUBSCRIBE, DISCONNECT).permitAll()
.anyMessage().denyAll();
}
}
Caused by: org.springframework.security.access.AccessDeniedException: Access Denied
at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:84) ~[spring-security-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:233) ~[spring-security-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.security.messaging.access.intercept.ChannelSecurityInterceptor.preSend(ChannelSecurityInterceptor.java:69) ~[spring-security-messaging-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.messaging.support.AbstractMessageChannel$ChannelInterceptorChain.applyPreSend(AbstractMessageChannel.java:178) ~[spring-messaging-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.messaging.support.AbstractMessageChannel.send(AbstractMessageChannel.java:132) ~[spring-messaging-5.1.4.RELEASE.jar:5.1.4.RELEASE]
... 32 more