diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java index afc2feda68bc8de400ca89c6863c0e1a3acada4b..7add44433ba611f9d984df1adfe406a252e531a8 100644 --- a/src/main/java/de/thm/arsnova/controller/LoginController.java +++ b/src/main/java/de/thm/arsnova/controller/LoginController.java @@ -82,6 +82,18 @@ public class LoginController extends AbstractController { @Value("${security.guest.lecturer.enabled}") private String guestLecturerEnabled; + @Value("${security.custom-login.enabled}") + private String customLoginEnabled; + + @Value("${security.custom-login.title:University}") + private String customLoginTitle; + + @Value("${security.custom-login.login-dialog-path}") + private String customLoginDialog; + + @Value("${security.custom-login.image:}") + private String customLoginImage; + @Value("${security.user-db.enabled}") private String dbAuthEnabled; @@ -313,7 +325,16 @@ public class LoginController extends AbstractController { services.add(sdesc); } - if ("true".equals(dbAuthEnabled)) { + if ("true".equals(customLoginEnabled) && !"".equals(customLoginDialog)) { + services.add(new ServiceDescription( + "custom", + customLoginTitle, + customizationPath + "/" + customLoginDialog + "?redirect={0}", + customLoginImage + )); + } + + if ("true".equals(dbAuthEnabled) && !"".equals(dbAuthDialog)) { services.add(new ServiceDescription( "arsnova", dbAuthTitle, @@ -322,7 +343,7 @@ public class LoginController extends AbstractController { )); } - if ("true".equals(ldapEnabled)) { + if ("true".equals(ldapEnabled) && !"".equals(ldapDialog)) { services.add(new ServiceDescription( "ldap", ldapTitle, diff --git a/src/main/webapp/arsnova.properties.example b/src/main/webapp/arsnova.properties.example index b44d2002b79c524a3af56e145bf6dfa63ae6e975..239b3829d503ca615436cdceb473d999a6f07cb1 100644 --- a/src/main/webapp/arsnova.properties.example +++ b/src/main/webapp/arsnova.properties.example @@ -14,6 +14,13 @@ security.authentication.login-try-limit=50 security.guest.enabled=true security.guest.lecturer.enabled=true +# Setup combined login if you want to use a single, customized login page +# which is used for multiple authentication services. +security.custom-login.enabled=false +security.custom-login.title=University +security.custom-login.login-dialog-path= +security.custom-login.image= + security.user-db.enabled=true security.user-db.title=ARSnova security.user-db.login-dialog-path=account.html diff --git a/src/test/resources/arsnova.properties.example b/src/test/resources/arsnova.properties.example index b44d2002b79c524a3af56e145bf6dfa63ae6e975..239b3829d503ca615436cdceb473d999a6f07cb1 100644 --- a/src/test/resources/arsnova.properties.example +++ b/src/test/resources/arsnova.properties.example @@ -14,6 +14,13 @@ security.authentication.login-try-limit=50 security.guest.enabled=true security.guest.lecturer.enabled=true +# Setup combined login if you want to use a single, customized login page +# which is used for multiple authentication services. +security.custom-login.enabled=false +security.custom-login.title=University +security.custom-login.login-dialog-path= +security.custom-login.image= + security.user-db.enabled=true security.user-db.title=ARSnova security.user-db.login-dialog-path=account.html