1

add initial simplified schema + h2-console spring-security + h2 password

This commit is contained in:
Christoph
2020-03-05 13:24:58 +01:00
parent ca28f041f5
commit 2d729686bb
4 changed files with 38 additions and 8 deletions

View File

@ -1,17 +1,12 @@
package mops.gruppen2.security; package mops.gruppen2.security;
import javax.servlet.http.HttpServletRequest;
import org.keycloak.KeycloakPrincipal; import org.keycloak.KeycloakPrincipal;
import org.keycloak.adapters.springsecurity.KeycloakSecurityComponents; import org.keycloak.adapters.springsecurity.KeycloakSecurityComponents;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider; import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter; import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.keycloak.representations.AccessToken; import org.keycloak.representations.AccessToken;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.*;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration; import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration;
@ -25,6 +20,8 @@ import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
@Configuration @Configuration
@EnableWebSecurity @EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class) @ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
@ -62,6 +59,10 @@ class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
http.authorizeRequests() http.authorizeRequests()
.antMatchers("/actuator/**") .antMatchers("/actuator/**")
.hasRole("monitoring") .hasRole("monitoring")
.and()
.authorizeRequests()
.antMatchers("h2-console/**")
.permitAll()
.anyRequest() .anyRequest()
.permitAll(); .permitAll();
} }
@ -81,4 +82,4 @@ class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
public static class MethodSecurityConfig public static class MethodSecurityConfig
extends GlobalMethodSecurityConfiguration { extends GlobalMethodSecurityConfiguration {
} }
} }

View File

@ -5,7 +5,7 @@ logging.pattern.console=[${application.name}],%magenta(%-5level), %d{dd-MM-yyyy
spring.datasource.url=jdbc:h2:mem:blogdb spring.datasource.url=jdbc:h2:mem:blogdb
spring.datasource.driverClassName=org.h2.Driver spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=root spring.datasource.username=sa
spring.datasource.password=geheim spring.datasource.password=geheim
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

View File

@ -0,0 +1,4 @@
-- noinspection SqlNoDataSourceInspectionForFile
insert into TEILNEHMER (VORNAME, NACHNAME, EMAIL) values
('Peter', 'Müller', 'Peter@123.de');

View File

@ -0,0 +1,25 @@
-- noinspection SqlNoDataSourceInspectionForFile
DROP TABLE IF EXISTS teilnehmer;
CREATE TABLE teilnehmer (
teilnehmer_id INT PRIMARY KEY AUTO_INCREMENT,
vorname VARCHAR(50) NOT NULL,
nachname VARCHAR(50) NOT NULL ,
email VARCHAR(255) NOT NULL
);
DROP TABLE IF EXISTS gruppe;
CREATE TABLE gruppe
(
gruppe_id INTEGER PRIMARY KEY auto_increment,
titel TEXT NOT NULL,
beschreibung TEXT NOT NULL
);
DROP TABLE IF EXISTS teilnahme;
CREATE TABLE teilnahme
(
id INTEGER PRIMARY KEY auto_increment,
teilnehmer_dto INTEGER REFERENCES teilnehmer(teilnehmer_id),
gruppe_dto INTEGER REFERENCES gruppe(gruppe_id)
);