mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-01 09:42:13 +00:00
Fix NPE in WebSocketMessageBrokerSecurityBeanDefinitionParser
Fixes gh-4112 Closes gh-4194
This commit is contained in:
parent
901a4e183a
commit
546d44d6e7
@ -255,8 +255,8 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements
|
|||||||
for (String beanName : beanNames) {
|
for (String beanName : beanNames) {
|
||||||
BeanDefinition bd = registry.getBeanDefinition(beanName);
|
BeanDefinition bd = registry.getBeanDefinition(beanName);
|
||||||
String beanClassName = bd.getBeanClassName();
|
String beanClassName = bd.getBeanClassName();
|
||||||
if (beanClassName.equals(SimpAnnotationMethodMessageHandler.class
|
if (SimpAnnotationMethodMessageHandler.class.getName().equals(beanClassName) ||
|
||||||
.getName()) || beanClassName.equals(WEB_SOCKET_AMMH_CLASS_NAME)) {
|
WEB_SOCKET_AMMH_CLASS_NAME.equals(beanClassName)) {
|
||||||
PropertyValue current = bd.getPropertyValues().getPropertyValue(
|
PropertyValue current = bd.getPropertyValues().getPropertyValue(
|
||||||
CUSTOM_ARG_RESOLVERS_PROP);
|
CUSTOM_ARG_RESOLVERS_PROP);
|
||||||
ManagedList<Object> argResolvers = new ManagedList<Object>();
|
ManagedList<Object> argResolvers = new ManagedList<Object>();
|
||||||
@ -275,16 +275,16 @@ public final class WebSocketMessageBrokerSecurityBeanDefinitionParser implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (beanClassName
|
else if ("org.springframework.web.socket.server.support.WebSocketHttpRequestHandler"
|
||||||
.equals("org.springframework.web.socket.server.support.WebSocketHttpRequestHandler")) {
|
.equals(beanClassName)) {
|
||||||
addCsrfTokenHandshakeInterceptor(bd);
|
addCsrfTokenHandshakeInterceptor(bd);
|
||||||
}
|
}
|
||||||
else if (beanClassName
|
else if ("org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService"
|
||||||
.equals("org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService")) {
|
.equals(beanClassName)) {
|
||||||
addCsrfTokenHandshakeInterceptor(bd);
|
addCsrfTokenHandshakeInterceptor(bd);
|
||||||
}
|
}
|
||||||
else if (beanClassName
|
else if ("org.springframework.web.socket.sockjs.transport.handler.DefaultSockJsService"
|
||||||
.equals("org.springframework.web.socket.sockjs.transport.handler.DefaultSockJsService")) {
|
.equals(beanClassName)) {
|
||||||
addCsrfTokenHandshakeInterceptor(bd);
|
addCsrfTokenHandshakeInterceptor(bd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.springframework.security.config.websocket;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
|
import org.springframework.beans.factory.support.GenericBeanDefinition;
|
||||||
|
import org.springframework.beans.factory.support.SimpleBeanDefinitionRegistry;
|
||||||
|
|
||||||
|
public class MessageSecurityPostProcessorTest {
|
||||||
|
|
||||||
|
private WebSocketMessageBrokerSecurityBeanDefinitionParser.MessageSecurityPostProcessor postProcessor =
|
||||||
|
new WebSocketMessageBrokerSecurityBeanDefinitionParser.MessageSecurityPostProcessor("id", false);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void handlesBeansWithoutClass() {
|
||||||
|
BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry();
|
||||||
|
registry.registerBeanDefinition("beanWithoutClass", new GenericBeanDefinition());
|
||||||
|
postProcessor.postProcessBeanDefinitionRegistry(registry);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user