• [^] # Tomcat7:redirection URL conditionnelle selon adresse IP source (ou domain)

    Posté par . En réponse au message Tomcat7: redirection URL conditionnelle selon adresse IP source (ou domaine). Évalué à 0. Dernière modification le 15 mars 2016 à 21:21.

    Hello,

    Je me suis finalement mis à Java le WE dernier et ai pondu cette page JSP, placée sous Tomcat7/webapps/ROOT:

    <HTML>
     <HEAD>
     <TITLE>Test redirection selon adresse IP</TITLE>
     </HEAD>
     <BODY>
     <H1>IP detection</H1>
    <% String ip = request.getHeader("X-Forwarded-For"); 
     if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("Proxy-Client-IP"); 
     } 
     if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("WL-Proxy-Client-IP"); 
     } 
     if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("HTTP_CLIENT_IP"); 
     } 
     if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getHeader("HTTP_X_FORWARDED_FOR"); 
     } 
     if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 
     ip = request.getRemoteAddr(); 
     };
     if (ip.substring(0,6).equals("10.66."))
     {out.println(" => connected from LAN, SSO enabled");
     String site = new String("https://vm-001/X/Y/SSO.jsp");
     response.setStatus(response.SC_MOVED_PERMANENTLY);
     response.setHeader("Location", site); 
     }
     else 
     {out.println(" => connected from WEB, SSO disabled");
     String site = new String("https://abc.societe.fr/X/Y/NoSSO.jsp");
     response.setStatus(response.SC_MOVED_PERMANENTLY);
     response.setHeader("Location", site);
     }
     %>
     </BODY>
    </HTML>

    Je l'ai testée en condition réelle à partir d'un PC portable, elle marche nickel (accès via LAN ou web en 4G).

    Cette solution "bricolée" doit tenir quelques mois en attendant la mis en place d'un VPN.

    Des remarques sur ce bout de code en matière de sécurité ?
    (balise code HS!)

    Merci.

    @+

    Steve.