diff --git a/pom.xml b/pom.xml
index 1e60e6e..30e336f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,10 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-web
+
com.vaadin
vaadin-spring-boot-starter
@@ -72,11 +76,6 @@
org.springframework.boot
spring-boot-starter-oauth2-client
-
- io.github.cdimascio
- dotenv-java
- 3.0.0
-
diff --git a/src/main/java/org/kickerelo/kickerelo/KickerEloApplication.java b/src/main/java/org/kickerelo/kickerelo/KickerEloApplication.java
index 0252816..d9ce578 100644
--- a/src/main/java/org/kickerelo/kickerelo/KickerEloApplication.java
+++ b/src/main/java/org/kickerelo/kickerelo/KickerEloApplication.java
@@ -1,13 +1,14 @@
package org.kickerelo.kickerelo;
-import com.vaadin.flow.component.page.AppShellConfigurator;
-import com.vaadin.flow.server.PWA;
-import com.vaadin.flow.theme.Theme;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import com.vaadin.flow.component.page.AppShellConfigurator;
+import com.vaadin.flow.server.PWA;
+import com.vaadin.flow.theme.Theme;
+
@SpringBootApplication
@EntityScan(basePackages = "org.kickerelo.kickerelo.data")
@@ -19,5 +20,4 @@ public class KickerEloApplication implements AppShellConfigurator {
public static void main(String[] args) {
SpringApplication.run(KickerEloApplication.class, args);
}
-
}
diff --git a/src/main/java/org/kickerelo/kickerelo/config/SecurityConfig.java b/src/main/java/org/kickerelo/kickerelo/config/SecurityConfig.java
index d744c86..edf3291 100644
--- a/src/main/java/org/kickerelo/kickerelo/config/SecurityConfig.java
+++ b/src/main/java/org/kickerelo/kickerelo/config/SecurityConfig.java
@@ -1,47 +1,45 @@
package org.kickerelo.kickerelo.config;
-import io.github.cdimascio.dotenv.Dotenv;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.oauth2.client.registration.ClientRegistration;
-import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
-import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
-import org.springframework.security.oauth2.core.AuthorizationGrantType;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
public class SecurityConfig {
- private final Dotenv dotenv = Dotenv.load();
+ // unnecessary, because already configured in application.properties
+ // private final Dotenv dotenv = Dotenv.load();
+ // @Bean
+ // public ClientRegistrationRepository clientRegistrationRepository() {
+ // ClientRegistration oidcRegistration = ClientRegistration.withRegistrationId("oidc")
+ // .clientId(dotenv.get("OIDC_CLIENT_ID"))
+ // .clientSecret(dotenv.get("OIDC_CLIENT_SECRET"))
+ // .scope("openid", "profile", "email")
+ // .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
+ // .authorizationUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/authorize/")
+ // .tokenUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/token/")
+ // .userInfoUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/userinfo/")
+ // .userNameAttributeName("sub")
+ // .clientName("OIDC")
+ // .redirectUri(dotenv.get("OIDC_REDIRECT_URI"))
+ // .build();
- @Bean
- public ClientRegistrationRepository clientRegistrationRepository() {
- ClientRegistration oidcRegistration = ClientRegistration.withRegistrationId("oidc")
- .clientId(dotenv.get("OIDC_CLIENT_ID"))
- .clientSecret(dotenv.get("OIDC_CLIENT_SECRET"))
- .scope("openid", "profile", "email")
- .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
- .authorizationUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/authorize/")
- .tokenUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/token/")
- .userInfoUri(dotenv.get("OIDC_ISSUER_BASE_URI") + "application/o/userinfo/")
- .userNameAttributeName("sub")
- .clientName("OIDC")
- .redirectUri(dotenv.get("OIDC_REDIRECT_URI"))
- .build();
-
- return new InMemoryClientRegistrationRepository(oidcRegistration);
- }
+ // return new InMemoryClientRegistrationRepository(oidcRegistration);
+ // }
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
- .requestMatchers("/oauth2/**").permitAll() // Allow all OAuth2 requests
- .anyRequest().permitAll() // Allow all requests
- )
- .oauth2Login()
- .and()
+ .requestMatchers("/app/admin/**").authenticated() // Nur authentifizierte User
+ .anyRequest().permitAll()
+ )
+ .oauth2Login(org.springframework.security.config.Customizer.withDefaults())
+ // .oauth2Login(oauth -> oauth
+ // .defaultSuccessUrl("/app/app/admin", true)
+ // )
+ //.and()
.logout(logout -> logout.logoutSuccessUrl("/"))
.csrf(csrf -> csrf.disable());
diff --git a/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java b/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java
index a0638eb..e8aa77b 100644
--- a/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java
+++ b/src/main/java/org/kickerelo/kickerelo/layout/KickerAppLayout.java
@@ -35,8 +35,8 @@ public class KickerAppLayout extends AppLayout {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
boolean isAuthenticated = auth != null && auth.isAuthenticated() && !(auth instanceof AnonymousAuthenticationToken);
- if (isAuthenticated) {
- Anchor logoutLink = new Anchor("/logout", "Logout (" + auth.getName() + ")");
+ if (isAuthenticated && auth != null && auth.getPrincipal() instanceof org.springframework.security.oauth2.core.oidc.user.OidcUser oidcUser) {
+ Anchor logoutLink = new Anchor("/logout", "Logout (" + oidcUser.getPreferredUsername() + ")");
logoutLink.getElement().getStyle()
.set("margin-left", "auto")
.set("margin-right", "10px")
diff --git a/src/main/java/org/kickerelo/kickerelo/util/RedirectController.java b/src/main/java/org/kickerelo/kickerelo/util/RedirectController.java
new file mode 100644
index 0000000..039d28a
--- /dev/null
+++ b/src/main/java/org/kickerelo/kickerelo/util/RedirectController.java
@@ -0,0 +1,12 @@
+package org.kickerelo.kickerelo.util;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@Controller
+public class RedirectController {
+ @GetMapping("/")
+ public String redirectToApp() {
+ return "redirect:/app/app";
+ }
+}
diff --git a/src/main/java/org/kickerelo/kickerelo/views/AdminView.java b/src/main/java/org/kickerelo/kickerelo/views/AdminView.java
index 99692f1..7831347 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/AdminView.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/AdminView.java
@@ -1,21 +1,55 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
+import org.kickerelo.kickerelo.exception.InvalidDataException;
+import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
+import org.kickerelo.kickerelo.service.KickerEloService;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.oauth2.core.oidc.user.OidcUser;
+import java.util.List;
+
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.html.H2;
+import com.vaadin.flow.component.html.Paragraph;
import com.vaadin.flow.component.notification.Notification;
import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
-import org.kickerelo.kickerelo.exception.InvalidDataException;
-import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
-import org.kickerelo.kickerelo.service.KickerEloService;
@Route("app/admin")
public class AdminView extends VerticalLayout {
public AdminView(KickerEloService service) {
- H2 subheader = new H2("Verwaltung");
+ // Zeige den aktuell authentifizierten Benutzer
+ Authentication auth = SecurityContextHolder.getContext().getAuthentication();
+ if (auth != null && auth.getPrincipal() instanceof OidcUser oidcUser) {
+ String username = oidcUser.getPreferredUsername();
+ Object groupsObj = oidcUser.getClaims().getOrDefault("groups", List.of());
+ List listOfGroups;
+ if (groupsObj instanceof List> groupsList) {
+ listOfGroups = groupsList.stream()
+ .filter(String.class::isInstance)
+ .map(String.class::cast)
+ .toList();
+ } else {
+ listOfGroups = List.of();
+ }
+ add(new Paragraph("Angemeldet als: " + username));
+ add(new Paragraph("Gruppen: " + listOfGroups.toString()));
+
+ if (listOfGroups.contains("Kicker Admin")) {
+ add(new Paragraph("Du bist Admin!"));
+ } else {
+ if (listOfGroups.contains("Kicker User")) {
+ add(new Paragraph("Du bist kein Admin, aber ein kickerelo User!"));
+ } else {
+ add(new Paragraph("Du bist gar nichts!"));
+ }
+ }
+ } else {
+ add(new Paragraph("Niemand ist angemeldet"));
+ }
TextField spielername = new TextField("Spielername");
spielername.addClassName("bordered");
@@ -41,6 +75,7 @@ public class AdminView extends VerticalLayout {
service.recalculateAll1vs1();
Notification.show("Recalculating finished").addThemeVariants(NotificationVariant.LUMO_SUCCESS);
});
+
Button recalc2vs2Button = new Button("2 vs 2 Elo neu berechnen", e -> {
Notification.show("Recalculating Elo").addThemeVariants(NotificationVariant.LUMO_WARNING);
service.recalculateAll2vs2();
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java b/src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java
index 571db32..7f109ae 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Chart1vs1.java
@@ -1,5 +1,10 @@
package org.kickerelo.kickerelo.views;
+import java.util.List;
+
+import org.kickerelo.kickerelo.data.Spieler;
+import org.kickerelo.kickerelo.util.Spieler1vs1EloComparator;
+
import com.github.appreciated.apexcharts.ApexChartsBuilder;
import com.github.appreciated.apexcharts.config.Theme;
import com.github.appreciated.apexcharts.config.builder.ChartBuilder;
@@ -11,19 +16,8 @@ import com.github.appreciated.apexcharts.config.chart.zoom.ZoomType;
import com.github.appreciated.apexcharts.config.theme.Mode;
import com.github.appreciated.apexcharts.config.theme.Monochrome;
import com.github.appreciated.apexcharts.config.xaxis.Labels;
-import com.github.appreciated.apexcharts.config.xaxis.labels.Style;
-import com.github.appreciated.apexcharts.config.yaxis.Title;
import com.github.appreciated.apexcharts.helper.Series;
-import com.vaadin.flow.component.UI;
-import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.router.Route;
-import com.vaadin.flow.server.VaadinService;
-import com.vaadin.flow.theme.lumo.Lumo;
-import org.kickerelo.kickerelo.data.Spieler;
-import org.kickerelo.kickerelo.util.Spieler1vs1EloComparator;
-
-import java.math.BigDecimal;
-import java.util.List;
@Route(value = "app/chart1vs1")
public class Chart1vs1 extends ApexChartsBuilder {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java b/src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java
index db986e9..24e6e86 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Chart2vs2.java
@@ -1,5 +1,10 @@
package org.kickerelo.kickerelo.views;
+import java.util.List;
+
+import org.kickerelo.kickerelo.data.Spieler;
+import org.kickerelo.kickerelo.util.Spieler2vs2EloComparator;
+
import com.github.appreciated.apexcharts.ApexChartsBuilder;
import com.github.appreciated.apexcharts.config.Theme;
import com.github.appreciated.apexcharts.config.builder.ChartBuilder;
@@ -14,12 +19,7 @@ import com.github.appreciated.apexcharts.config.xaxis.Labels;
import com.github.appreciated.apexcharts.helper.Series;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.data.Spieler;
-import org.kickerelo.kickerelo.util.Spieler2vs2EloComparator;
-
-import java.util.List;
-
-@Route(value = "app/chart1vs1")
+@Route(value = "app/chart2vs2")
public class Chart2vs2 extends ApexChartsBuilder {
public Chart2vs2(List l) {
Theme theme = new Theme();
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Enter1vs1View.java b/src/main/java/org/kickerelo/kickerelo/views/Enter1vs1View.java
index 7973903..ca94328 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Enter1vs1View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Enter1vs1View.java
@@ -1,5 +1,11 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
+import org.kickerelo.kickerelo.exception.InvalidDataException;
+import org.kickerelo.kickerelo.exception.NoSuchPlayerException;
+import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
+import org.kickerelo.kickerelo.service.KickerEloService;
+
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.html.H2;
@@ -8,11 +14,6 @@ import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.IntegerField;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
-import org.kickerelo.kickerelo.exception.InvalidDataException;
-import org.kickerelo.kickerelo.exception.NoSuchPlayerException;
-import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
-import org.kickerelo.kickerelo.service.KickerEloService;
@Route(value = "app/enter1vs1")
public class Enter1vs1View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Enter2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/Enter2vs2View.java
index ce753b3..3f97e52 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Enter2vs2View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Enter2vs2View.java
@@ -1,5 +1,11 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
+import org.kickerelo.kickerelo.exception.InvalidDataException;
+import org.kickerelo.kickerelo.exception.NoSuchPlayerException;
+import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
+import org.kickerelo.kickerelo.service.KickerEloService;
+
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.html.H2;
@@ -8,11 +14,6 @@ import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.IntegerField;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.exception.DuplicatePlayerException;
-import org.kickerelo.kickerelo.exception.InvalidDataException;
-import org.kickerelo.kickerelo.exception.NoSuchPlayerException;
-import org.kickerelo.kickerelo.exception.PlayerNameNotSetException;
-import org.kickerelo.kickerelo.service.KickerEloService;
@Route(value = "app/enter2vs2")
public class Enter2vs2View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java b/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java
index 2582416..9ed689e 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java
@@ -1,11 +1,12 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.repository.SpielerRepository;
+
import com.github.appreciated.apexcharts.ApexCharts;
import com.vaadin.flow.component.Unit;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.repository.SpielerRepository;
@Route("app/graph1vs1")
public class Graph1vs1View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java
index 968c0a9..19d9f64 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java
@@ -1,11 +1,12 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.repository.SpielerRepository;
+
import com.github.appreciated.apexcharts.ApexCharts;
import com.vaadin.flow.component.Unit;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.repository.SpielerRepository;
@Route("app/graph2vs2")
public class Graph2vs2View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java b/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java
index 7d84869..6ccaf52 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/History1vs1View.java
@@ -1,5 +1,10 @@
package org.kickerelo.kickerelo.views;
+import java.util.List;
+
+import org.kickerelo.kickerelo.data.Ergebnis1vs1;
+import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository;
+
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridSortOrder;
import com.vaadin.flow.component.grid.dataview.GridListDataView;
@@ -13,10 +18,6 @@ import com.vaadin.flow.data.provider.SortDirection;
import com.vaadin.flow.data.renderer.LocalDateTimeRenderer;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.data.Ergebnis1vs1;
-import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository;
-
-import java.util.List;
@Route("app/history1vs1")
public class History1vs1View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java
index f956e43..aae20be 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/History2vs2View.java
@@ -1,5 +1,10 @@
package org.kickerelo.kickerelo.views;
+import java.util.List;
+
+import org.kickerelo.kickerelo.data.Ergebnis2vs2;
+import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository;
+
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridSortOrder;
import com.vaadin.flow.component.grid.dataview.GridListDataView;
@@ -14,10 +19,6 @@ import com.vaadin.flow.data.provider.SortDirection;
import com.vaadin.flow.data.renderer.LocalDateTimeRenderer;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.data.Ergebnis2vs2;
-import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository;
-
-import java.util.List;
@Route("app/history2vs2")
public class History2vs2View extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/PlayerListView.java b/src/main/java/org/kickerelo/kickerelo/views/PlayerListView.java
index e012df0..30eff60 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/PlayerListView.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/PlayerListView.java
@@ -1,15 +1,16 @@
package org.kickerelo.kickerelo.views;
+import java.util.List;
+
+import org.kickerelo.kickerelo.data.Spieler;
+import org.kickerelo.kickerelo.service.KickerEloService;
+
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridSortOrder;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.data.provider.SortDirection;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.data.Spieler;
-import org.kickerelo.kickerelo.service.KickerEloService;
-
-import java.util.List;
@Route("app")
public class PlayerListView extends VerticalLayout {
diff --git a/src/main/java/org/kickerelo/kickerelo/views/Stat2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/Stat2vs2View.java
index 3c0c0ee..132881d 100644
--- a/src/main/java/org/kickerelo/kickerelo/views/Stat2vs2View.java
+++ b/src/main/java/org/kickerelo/kickerelo/views/Stat2vs2View.java
@@ -1,5 +1,10 @@
package org.kickerelo.kickerelo.views;
+import org.kickerelo.kickerelo.data.Spieler;
+import org.kickerelo.kickerelo.service.KickerEloService;
+import org.kickerelo.kickerelo.service.Stat2vs2Service;
+import org.kickerelo.kickerelo.util.Position;
+
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.html.H2;
import com.vaadin.flow.component.html.NativeLabel;
@@ -7,10 +12,6 @@ import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.progressbar.ProgressBar;
import com.vaadin.flow.component.progressbar.ProgressBarVariant;
import com.vaadin.flow.router.Route;
-import org.kickerelo.kickerelo.data.Spieler;
-import org.kickerelo.kickerelo.service.KickerEloService;
-import org.kickerelo.kickerelo.service.Stat2vs2Service;
-import org.kickerelo.kickerelo.util.Position;
@Route("app/stat2vs2")
public class Stat2vs2View extends VerticalLayout {
diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties
index 2fa27fb..deec540 100644
--- a/src/main/resources/application-prod.properties
+++ b/src/main/resources/application-prod.properties
@@ -17,4 +17,4 @@ spring.security.oauth2.client.registration.oidc.scope=openid,profile,email
spring.security.oauth2.client.registration.oidc.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}
spring.security.oauth2.client.provider.oidc.issuer-uri=${OIDC_ISSUER_URI}
-vaadin.urlMapping=/*
+vaadin.urlMapping=/app/*
diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties
index 386b42a..8898ffb 100644
--- a/src/main/resources/application-test.properties
+++ b/src/main/resources/application-test.properties
@@ -13,8 +13,9 @@ spring.jpa.show-sql=true
# == OIDC Configuration ==
spring.security.oauth2.client.registration.oidc.client-id=${OIDC_CLIENT_ID}
spring.security.oauth2.client.registration.oidc.client-secret=${OIDC_CLIENT_SECRET}
-spring.security.oauth2.client.registration.oidc.scope=openid,profile,email
-spring.security.oauth2.client.registration.oidc.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}
+spring.security.oauth2.client.registration.oidc.scope=openid,email,profile
+spring.security.oauth2.client.registration.oidc.redirect-uri=${OIDC_REDIRECT_URI}
+spring.security.oauth2.client.provider.oidc.jwk-set-uri=${OIDC_JWK_SET_URI}
spring.security.oauth2.client.provider.oidc.issuer-uri=${OIDC_ISSUER_URI}
vaadin.urlMapping=/app/*