summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/libertacasa/pubsh/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/libertacasa/pubsh/web')
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/BeanConfig.java17
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/SecurityConfig.java41
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/WebApplication.java2
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/WebSecurityConfigurer.java5
4 files changed, 64 insertions, 1 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/BeanConfig.java b/src/main/java/net/libertacasa/pubsh/web/BeanConfig.java
new file mode 100644
index 0000000..63dce29
--- /dev/null
+++ b/src/main/java/net/libertacasa/pubsh/web/BeanConfig.java
@@ -0,0 +1,17 @@
+package net.libertacasa.pubsh.web;
+
+import org.keycloak.adapters.KeycloakConfigResolver;
+import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class BeanConfig {
+
+ @Bean
+ public KeycloakConfigResolver keycloakConfigResolver() {
+ return new KeycloakSpringBootConfigResolver();
+ }
+
+
+}
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();
+ }
+}
diff --git a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
index 2a33ea6..b0431fd 100644
--- a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
+++ b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
@@ -22,7 +22,7 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import com.example.demo.Docker;
+import net.libertacasa.pubsh.web.Docker;
import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.api.model.Image;
diff --git a/src/main/java/net/libertacasa/pubsh/web/WebSecurityConfigurer.java b/src/main/java/net/libertacasa/pubsh/web/WebSecurityConfigurer.java
new file mode 100644
index 0000000..e701033
--- /dev/null
+++ b/src/main/java/net/libertacasa/pubsh/web/WebSecurityConfigurer.java
@@ -0,0 +1,5 @@
+package net.libertacasa.pubsh.web;
+
+public class WebSecurityConfigurer {
+
+}