1
1
package com .pj .keycloak .security ;
2
2
3
3
import org .keycloak .adapters .springboot .KeycloakSpringBootConfigResolver ;
4
- import org .keycloak .adapters .springsecurity .KeycloakSecurityComponents ;
5
- import org .keycloak .adapters .springsecurity .authentication .KeycloakAuthenticationProvider ;
4
+ import org .keycloak .adapters .springsecurity .KeycloakConfiguration ;
6
5
import org .keycloak .adapters .springsecurity .config .KeycloakWebSecurityConfigurerAdapter ;
7
6
import org .springframework .beans .factory .annotation .Autowired ;
7
+ import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
8
8
import org .springframework .context .annotation .Bean ;
9
- import org .springframework .context .annotation .ComponentScan ;
10
- import org .springframework .context .annotation .Configuration ;
11
- import org .springframework .context .annotation .FilterType ;
12
9
import org .springframework .security .config .annotation .authentication .builders .AuthenticationManagerBuilder ;
13
10
import org .springframework .security .config .annotation .web .builders .HttpSecurity ;
14
- import org .springframework .security .config .annotation .web .configuration .EnableWebSecurity ;
15
- import org .springframework .security .core .authority .mapping .SimpleAuthorityMapper ;
16
11
import org .springframework .security .core .session .SessionRegistryImpl ;
17
12
import org .springframework .security .web .authentication .session .RegisterSessionAuthenticationStrategy ;
18
13
import org .springframework .security .web .authentication .session .SessionAuthenticationStrategy ;
22
17
23
18
import java .util .Collections ;
24
19
25
- @ Configuration
26
- @ EnableWebSecurity
27
- @ ComponentScan (basePackageClasses = {KeycloakSecurityComponents .class },
28
- excludeFilters = @ ComponentScan .Filter (type = FilterType .REGEX , pattern = "org.keycloak.adapters.springsecurity.management.HttpSessionManager" ))
29
- public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter
30
- {
20
+ @ KeycloakConfiguration
21
+ @ ConditionalOnProperty (name = "keycloak.enabled" , havingValue = "false" , matchIfMissing = true )
22
+ public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
31
23
@ Autowired
32
- public void configureGlobal (AuthenticationManagerBuilder authenticationManagerBuilder )
33
- {
34
- KeycloakAuthenticationProvider keycloakAuthenticationProvider =keycloakAuthenticationProvider ();
35
- keycloakAuthenticationProvider .setGrantedAuthoritiesMapper (new SimpleAuthorityMapper ());
36
- authenticationManagerBuilder .authenticationProvider (keycloakAuthenticationProvider );
24
+ public void configureGlobal (AuthenticationManagerBuilder authenticationManagerBuilder ) {
25
+ authenticationManagerBuilder .authenticationProvider (keycloakAuthenticationProvider ());
37
26
}
38
27
39
28
@ Bean
40
29
@ Override
41
- protected SessionAuthenticationStrategy sessionAuthenticationStrategy ()
42
- {
30
+ protected SessionAuthenticationStrategy sessionAuthenticationStrategy () {
43
31
return new RegisterSessionAuthenticationStrategy (new SessionRegistryImpl ());
44
32
}
45
33
46
- @ Bean
47
- public KeycloakSpringBootConfigResolver keycloakSpringBootConfigResolver ()
48
- {
49
- return new KeycloakSpringBootConfigResolver ();
50
- }
51
-
52
34
@ Override
53
- protected void configure (HttpSecurity http ) throws Exception
54
- {
35
+ protected void configure (HttpSecurity http ) throws Exception {
55
36
super .configure (http );
56
37
57
38
http .authorizeRequests ()
@@ -64,10 +45,14 @@ protected void configure(HttpSecurity http) throws Exception
64
45
http .csrf ().disable ();
65
46
}
66
47
48
+ @ Bean
49
+ public KeycloakSpringBootConfigResolver keycloakSpringBootConfigResolver () {
50
+ return new KeycloakSpringBootConfigResolver ();
51
+ }
52
+
67
53
//Cors filter to accept incoming requests
68
54
@ Bean
69
- CorsConfigurationSource corsConfigurationSource ()
70
- {
55
+ CorsConfigurationSource corsConfigurationSource () {
71
56
CorsConfiguration configuration = new CorsConfiguration ();
72
57
configuration .applyPermitDefaultValues ();
73
58
configuration .setAllowedMethods (Collections .singletonList ("*" ));
0 commit comments