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/*