diff --git a/docker-compose.yaml b/docker-compose.yaml index 60626a6..723b6ca 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,7 +11,17 @@ services: JDBC_DATABASE_URL: "jdbc:postgresql://db:5432/postgres" JDBC_DATABASE_USERNAME: postgres JDBC_DATABASE_PASSWORD: calypso - APPLICATION_URL: http://localhost.datasektionen.se:3000 - env_file: .env + APPLICATION_URL: http://localhost:3000 + LOGIN_FRONTEND_URL: http://localhost:7002/ + LOGIN_API_URL: http://login:7002/ + LOGIN_KEY: asdf ports: - "3000:8080" + login: + image: ghcr.io/datasektionen/nyckeln-under-dorrmattan + ports: + - 7002:7002 + environment: + # Since we're using the real pls, it's nice to use some user with a lot of priveleges. Putting + # mine here since I'm d-sys at the time of writing. + KTH_ID: mathm diff --git a/src/main/java/se/datasektionen/calypso/auth/DAuthEntryPoint.java b/src/main/java/se/datasektionen/calypso/auth/DAuthEntryPoint.java index 618da73..d59a402 100644 --- a/src/main/java/se/datasektionen/calypso/auth/DAuthEntryPoint.java +++ b/src/main/java/se/datasektionen/calypso/auth/DAuthEntryPoint.java @@ -20,7 +20,7 @@ public DAuthEntryPoint(Config config) { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { - response.sendRedirect(config.getLoginUrl() + "/login?callback=" + + response.sendRedirect(config.getLoginFrontendUrl() + "/login?callback=" + config.getBaseUrl() + "/auth/verify?token="); } } diff --git a/src/main/java/se/datasektionen/calypso/auth/DAuthUserDetailsService.java b/src/main/java/se/datasektionen/calypso/auth/DAuthUserDetailsService.java index f47baf5..71a59bb 100644 --- a/src/main/java/se/datasektionen/calypso/auth/DAuthUserDetailsService.java +++ b/src/main/java/se/datasektionen/calypso/auth/DAuthUserDetailsService.java @@ -41,7 +41,7 @@ public DAuthUserDetailsService(Config config) { public UserDetails loadUserDetails(PreAuthenticatedAuthenticationToken token) throws UsernameNotFoundException { // Required variables var t = token.getPrincipal().toString(); - var url = config.getLoginUrl() + "/verify/" + t + ".json?api_key=" + config.getLoginApiKey(); + var url = config.getLoginApiUrl() + "/verify/" + t + ".json?api_key=" + config.getLoginApiKey(); var headers = new HttpHeaders(); headers.set("User-Agent", "Spring Framework/Java " + System.getProperty("java.version")); diff --git a/src/main/java/se/datasektionen/calypso/config/Config.java b/src/main/java/se/datasektionen/calypso/config/Config.java index ef5d6c3..96d0670 100644 --- a/src/main/java/se/datasektionen/calypso/config/Config.java +++ b/src/main/java/se/datasektionen/calypso/config/Config.java @@ -9,15 +9,18 @@ public class Config { private final String baseUrl; private final String loginApiKey; - private final String loginUrl; + private final String loginFrontendUrl; + private final String loginApiUrl; public Config( @Value("${APPLICATION_URL}") String baseUrl, @Value("${LOGIN_KEY}") String loginApiKey, - @Value("${LOGIN_URL:https://login.datasektionen.se}") String loginUrl + @Value("${LOGIN_FRONTEND_URL:https://login.datasektionen.se}") String loginFrontendUrl, + @Value("${LOGIN_API_URL:https://login.datasektionen.se}") String loginApiUrl ) { this.baseUrl = baseUrl; this.loginApiKey = loginApiKey; - this.loginUrl = loginUrl; + this.loginFrontendUrl = loginFrontendUrl; + this.loginApiUrl = loginApiUrl; } } diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index c0889a7..df878c8 100644 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -11,9 +11,14 @@ "description": "API key for login." }, { - "name": "LOGIN_URL", + "name": "LOGIN_FRONTEND_URL", "type": "java.lang.String", - "description": "URL to login." + "description": "URL to login frontend." + }, + { + "name": "LOGIN_API_URL", + "type": "java.lang.String", + "description": "URL to login api." } ] }