From b46f745e1089f2b34168901658c81b826cadb87d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20LELEU?= <jerome.leleu@teamdlab.com>
Date: Thu, 26 Mar 2020 17:36:50 +0100
Subject: [PATCH] some refactoring

---
 .../src/main/config/cas-server-application-dev.yml     |  8 ++++++++
 .../src/main/config/cas-server-application-recette.yml |  8 ++++++++
 .../IamSurrogateRestAuthenticationService.java         |  7 +++----
 .../vitamui/cas/webflow/actions/DispatcherAction.java  |  8 ++------
 .../SurrogateRestAuthenticationConfiguration.java      | 10 +++++++---
 .../IamSurrogateRestAuthenticationServiceTest.java     |  3 +--
 ...tcherActionTests.java => DispatcherActionTest.java} |  2 +-
 7 files changed, 30 insertions(+), 16 deletions(-)
 rename cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/{DispatcherActionTests.java => DispatcherActionTest.java} (99%)

diff --git a/cas/cas-server/src/main/config/cas-server-application-dev.yml b/cas/cas-server/src/main/config/cas-server-application-dev.yml
index 574a7bc4..821a84fe 100644
--- a/cas/cas-server/src/main/config/cas-server-application-dev.yml
+++ b/cas/cas-server/src/main/config/cas-server-application-dev.yml
@@ -1,6 +1,12 @@
 spring:
   main:
     allow-bean-definition-overriding: true
+  cloud:
+    consul:  #disabled for dev
+      enabled: false
+      discovery:
+        enabled: false
+        register: false
 
 
 server:
@@ -10,6 +16,8 @@ server:
     key-password: jkspasswd
   host: dev.vitamui.com
   port: 8080
+  servlet:
+    context-path: /cas
 
 
 vitamui.cas.tenant.identifier: -1
diff --git a/cas/cas-server/src/main/config/cas-server-application-recette.yml b/cas/cas-server/src/main/config/cas-server-application-recette.yml
index 1783a57f..31f454d4 100644
--- a/cas/cas-server/src/main/config/cas-server-application-recette.yml
+++ b/cas/cas-server/src/main/config/cas-server-application-recette.yml
@@ -1,6 +1,12 @@
 spring:
   main:
     allow-bean-definition-overriding: true
+  cloud:
+    consul:  #disabled for dev
+      enabled: false
+      discovery:
+        enabled: false
+        register: false
 
 
 server:
@@ -10,6 +16,8 @@ server:
     key-password: jkspasswd
   host: dev.vitamui.com
   port: 8080
+  servlet:
+    context-path: /cas
 
 
 vitamui.cas.tenant.identifier: 4
diff --git a/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationService.java b/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationService.java
index 72da4344..5c0c7369 100644
--- a/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationService.java
+++ b/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationService.java
@@ -49,7 +49,6 @@ import org.apereo.cas.authentication.principal.Principal;
 import org.apereo.cas.authentication.principal.Service;
 import org.apereo.cas.authentication.surrogate.BaseSurrogateAuthenticationService;
 import org.apereo.cas.services.ServicesManager;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;
 
@@ -66,13 +65,13 @@ public class IamSurrogateRestAuthenticationService extends BaseSurrogateAuthenti
 
     private final CasExternalRestClient casExternalRestClient;
 
-    @Autowired
-    private Utils utils;
+    private final Utils utils;
 
     public IamSurrogateRestAuthenticationService(final CasExternalRestClient casExternalRestClient,
-                                                 final ServicesManager servicesManager) {
+                                                 final ServicesManager servicesManager, final Utils utils) {
         super(servicesManager);
         this.casExternalRestClient = casExternalRestClient;
+        this.utils = utils;
     }
 
     @Override
diff --git a/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherAction.java b/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherAction.java
index d8b34320..e7bb07be 100644
--- a/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherAction.java
+++ b/cas/cas-server/src/main/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherAction.java
@@ -49,9 +49,7 @@ import fr.gouv.vitamui.commons.api.logger.VitamUILoggerFactory;
 import fr.gouv.vitamui.iam.common.utils.IdentityProviderHelper;
 import fr.gouv.vitamui.iam.external.client.CasExternalRestClient;
 import org.apache.commons.lang.StringUtils;
-import org.apereo.cas.CasProtocolConstants;
 import org.apereo.cas.authentication.credential.UsernamePasswordCredential;
-import org.apereo.cas.authentication.principal.Service;
 import org.apereo.cas.web.support.WebUtils;
 import org.springframework.webflow.action.AbstractAction;
 import org.springframework.webflow.execution.Event;
@@ -65,7 +63,8 @@ import java.util.Optional;
  * This class can dispatch the user:
  * - either to the password page
  * - or to an external IdP (authentication delegation)
- * - or to the disabled account page if the user is not linked to any identity provider.
+ * - or to the bad configuration page if the user is not linked to any identity provider
+ * - or to the disabled account page if the user is disabled.
  *
  *
  */
@@ -158,9 +157,6 @@ public class DispatcherAction extends AbstractAction {
                 request.setAttribute(Constants.SURROGATE, surrogate);
             }
 
-            final Service service = (Service) requestContext.getFlowScope().get(CasProtocolConstants.PARAMETER_SERVICE);
-            request.setAttribute(CasProtocolConstants.PARAMETER_SERVICE, service);
-
             return utils.performClientRedirection(this, provider.getSaml2Client(), requestContext);
         }
     }
diff --git a/cas/cas-server/src/main/java/org/apereo/cas/config/SurrogateRestAuthenticationConfiguration.java b/cas/cas-server/src/main/java/org/apereo/cas/config/SurrogateRestAuthenticationConfiguration.java
index fe2eff0c..c3c6586b 100644
--- a/cas/cas-server/src/main/java/org/apereo/cas/config/SurrogateRestAuthenticationConfiguration.java
+++ b/cas/cas-server/src/main/java/org/apereo/cas/config/SurrogateRestAuthenticationConfiguration.java
@@ -1,5 +1,6 @@
 package org.apereo.cas.config;
 
+import fr.gouv.vitamui.cas.util.Utils;
 import lombok.extern.slf4j.Slf4j;
 import org.apereo.cas.authentication.surrogate.SurrogateAuthenticationService;
 import org.apereo.cas.configuration.CasConfigurationProperties;
@@ -29,14 +30,17 @@ public class SurrogateRestAuthenticationConfiguration {
     @Qualifier("servicesManager")
     private ObjectProvider<ServicesManager> servicesManager;
 
-    // customisation JLE:
+    // customisation:
     @Autowired
     private CasExternalRestClient casExternalRestClient;
 
+    @Autowired
+    private Utils utils;
+
     @RefreshScope
     @Bean
     public SurrogateAuthenticationService surrogateAuthenticationService() {
-        // customisation JLE:
-        return new IamSurrogateRestAuthenticationService(casExternalRestClient, servicesManager.getObject());
+        // customisation:
+        return new IamSurrogateRestAuthenticationService(casExternalRestClient, servicesManager.getObject(), utils);
     }
 }
diff --git a/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationServiceTest.java b/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationServiceTest.java
index 3ea77ade..97b0ca50 100644
--- a/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationServiceTest.java
+++ b/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/authentication/IamSurrogateRestAuthenticationServiceTest.java
@@ -42,9 +42,8 @@ public final class IamSurrogateRestAuthenticationServiceTest {
     public void setUp() {
         casExternalRestClient = mock(CasExternalRestClient.class);
 
-        service = new IamSurrogateRestAuthenticationService(casExternalRestClient, mock(ServicesManager.class));
         final Utils utils = new Utils(casExternalRestClient, null);
-        service.setUtils(utils);
+        service = new IamSurrogateRestAuthenticationService(casExternalRestClient, mock(ServicesManager.class), utils);
     }
 
     @Test
diff --git a/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTests.java b/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTest.java
similarity index 99%
rename from cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTests.java
rename to cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTest.java
index b96f5856..b03f19bf 100644
--- a/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTests.java
+++ b/cas/cas-server/src/test/java/fr/gouv/vitamui/cas/webflow/actions/DispatcherActionTest.java
@@ -37,7 +37,7 @@ import fr.gouv.vitamui.iam.common.utils.IdentityProviderHelper;
 @RunWith(SpringRunner.class)
 @ContextConfiguration(classes = ServerIdentityAutoConfiguration.class)
 @TestPropertySource(locations = "classpath:/application-test.properties")
-public final class DispatcherActionTests extends BaseWebflowActionTest {
+public final class DispatcherActionTest extends BaseWebflowActionTest {
 
     private static final String USERNAME = "julien@vitamui.com";
 
-- 
GitLab