summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java')
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java b/src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java
new file mode 100644
index 0000000..53f83ab
--- /dev/null
+++ b/src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java
@@ -0,0 +1,41 @@
+package net.libertacasa.pubsh.web;
+
+import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
+import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.core.session.SessionRegistry;
+import org.springframework.security.core.session.SessionRegistryImpl;
+import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
+import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
+
+@KeycloakConfiguration
+public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
+ @Autowired
+ public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
+ auth.authenticationProvider(keycloakAuthenticationProvider());
+ }
+
+ @Bean
+ @Override
+ protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
+ return new RegisterSessionAuthenticationStrategy(buildSessionRegistry());
+ }
+
+ @Bean
+ protected SessionRegistry buildSessionRegistry() {
+ return new SessionRegistryImpl();
+ }
+
+ @Override
+ protected void configure(HttpSecurity http) throws Exception
+ {
+ super.configure(http); //.anonymous().disable()
+ http
+ .authorizeRequests()
+ .antMatchers("/portal").hasAuthority("devel-user")
+ .anyRequest().permitAll();
+ }
+}