Skip to content

Commit 77a6e01

Browse files
committed
Add AuthorizationManager to Messaging
Closes gh-11076
1 parent b71d9bf commit 77a6e01

20 files changed

+2005
-12
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configuration/EnableWebSecurity.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2020 the original author or authors.
2+
* Copyright 2002-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -75,8 +75,8 @@
7575
@Retention(RetentionPolicy.RUNTIME)
7676
@Target(ElementType.TYPE)
7777
@Documented
78-
@Import({ WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class,
79-
HttpSecurityConfiguration.class })
78+
@Import({ WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, SpringWebSocketImportSelector.class,
79+
OAuth2ImportSelector.class, HttpSecurityConfiguration.class })
8080
@EnableGlobalAuthentication
8181
@Configuration
8282
public @interface EnableWebSecurity {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright 2002-2022 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.security.config.annotation.web.configuration;
18+
19+
import org.springframework.context.annotation.ImportSelector;
20+
import org.springframework.core.type.AnnotationMetadata;
21+
import org.springframework.util.ClassUtils;
22+
23+
/**
24+
* Used by {@link EnableWebSecurity} to conditionally import
25+
* {@link org.springframework.security.config.annotation.web.socket.WebSocketMessageBrokerSecurityConfiguration}
26+
* when the AbstractWebSocketHandler is present on the classpath.
27+
*
28+
* @author Josh Cummings
29+
* @since 5.7
30+
*/
31+
class SpringWebSocketImportSelector implements ImportSelector {
32+
33+
@Override
34+
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
35+
if (!ClassUtils.isPresent("org.springframework.web.socket.handler.AbstractWebSocketHandler",
36+
getClass().getClassLoader())) {
37+
return new String[0];
38+
}
39+
return new String[] {
40+
"org.springframework.security.config.annotation.web.socket.WebSocketMessageBrokerSecurityConfiguration" };
41+
}
42+
43+
}

0 commit comments

Comments
 (0)