diff --git a/de.srsoftware.oidc.backend/src/main/java/de/srsoftware/oidc/backend/Backend.java b/de.srsoftware.oidc.backend/src/main/java/de/srsoftware/oidc/backend/Backend.java index 7bcf6a0..e145752 100644 --- a/de.srsoftware.oidc.backend/src/main/java/de/srsoftware/oidc/backend/Backend.java +++ b/de.srsoftware.oidc.backend/src/main/java/de/srsoftware/oidc/backend/Backend.java @@ -17,7 +17,7 @@ public class Backend extends PathHandler { System.out.printf("%s %s…", method, path); if ("login".equals(path)) { - doLogin(ex); + doLogin(ex); // TODO: prevent brute force return; } var token = getAuthToken(ex); diff --git a/de.srsoftware.oidc.web/src/main/resources/en/config.js b/de.srsoftware.oidc.web/src/main/resources/en/config.js index 4b5e604..31d86dd 100644 --- a/de.srsoftware.oidc.web/src/main/resources/en/config.js +++ b/de.srsoftware.oidc.web/src/main/resources/en/config.js @@ -1 +1,2 @@ -var api = "/api"; \ No newline at end of file +var api = "/api"; +var web = "/web"; \ No newline at end of file diff --git a/de.srsoftware.oidc.web/src/main/resources/en/lightoidc.js b/de.srsoftware.oidc.web/src/main/resources/en/lightoidc.js index 06efdec..e5a5b72 100644 --- a/de.srsoftware.oidc.web/src/main/resources/en/lightoidc.js +++ b/de.srsoftware.oidc.web/src/main/resources/en/lightoidc.js @@ -12,8 +12,26 @@ function checkUser(){ .then(handleCheckUser) .catch((err) => console.log(err)); } -function submitForm(formId){ - var data = Object.fromEntries(new FormData(document.getElementById(formId))); + +function handleLogin(response){ + if (response.status == 401){ + loadError("login-failed"); + return; + } + console.log(response); +} + +function loadError(page){ + fetch(web+"/"+page+".txt").then(resp => resp.text()).then(showError); +} + +function showError(content){ + document.getElementById("error").innerHTML = content; +} + +function tryLogin(){ + document.getElementById("error").innerHTML = ""; + var data = Object.fromEntries(new FormData(document.getElementById('login'))); fetch(api+"/login",{ headers: { 'login-username': data.user, @@ -21,5 +39,5 @@ function submitForm(formId){ Accept: 'application/json', 'Content-Type': 'application/json' } - }); + }).then(handleLogin); } \ No newline at end of file diff --git a/de.srsoftware.oidc.web/src/main/resources/en/login-failed.txt b/de.srsoftware.oidc.web/src/main/resources/en/login-failed.txt new file mode 100644 index 0000000..df55f1f --- /dev/null +++ b/de.srsoftware.oidc.web/src/main/resources/en/login-failed.txt @@ -0,0 +1 @@ +Login failed! \ No newline at end of file diff --git a/de.srsoftware.oidc.web/src/main/resources/en/login.html b/de.srsoftware.oidc.web/src/main/resources/en/login.html index 8e98e4f..313a83e 100644 --- a/de.srsoftware.oidc.web/src/main/resources/en/login.html +++ b/de.srsoftware.oidc.web/src/main/resources/en/login.html @@ -6,7 +6,7 @@

Login

-
+
User credentials - +
+
\ No newline at end of file