IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Quelle techno pour un browser autorisant les cookies pour un fichier local


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Quelle techno pour un browser autorisant les cookies pour un fichier local
    Bonjour à tous,
    Presque tout est dans le titre mais je vais développer un peu le contexte.

    Je dois créer une application en partant de zéro mais en utilisant certains composants fournis par une autre team.
    Cette application doit être un économiseur d'écran qui fait défiler des pages de pub, ciblées, aux utilisateurs en fonction d'un id : id1 est connecté donc pub1 puis pub2....
    Le petit truc est que les pubs sont choisies par une autre entité. J'ai donc une page html à faire avec un script JS fournis ainsi que quelques éléments de paramétrages.

    J'ai donc créé une petite application en JavaFx, qui affiche un composant WebView en plein écran, qui génère la page html et qui la charge.
    Le soucis, c'est que pour passer l'id, ils ont choisit de lire un cookie et que le WebView n'autorise pas les cookies pour les pages locales.

    Je cherche donc une autre technologie permettant la création (et le chargement) de cookie en javascript lors du chargement d'une page locale.
    Je ne suis en rien bloqué sur JavaFx, je choisit la techno que je veux.
    Après une journée de recherche, je ne trouve que des browser basés sur Chromium et donc qui n'autorisent pas non plus les cookies en local.

    Au point où j'en suis, je suis ouvert à toute proposition. Je suis même prêt à ré-écrire complètement l'appli déjà faite.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 860
    Points : 22 900
    Points
    22 900
    Billets dans le blog
    51
    Par défaut
    Pour des raison de sécurité, il a pas mal de choses qui fonctionnaient très bien il y a qq années avec des pages locales qui ne fonctionnent plus du tout de nos jours avec les navigateurs modernes (ce n'est pas propre a JavaFX).
    Et qu'en est-il de la solution d'embarquer un serveur web dans ton application ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Tu penses à mettre en place un serveur web sur le poste et d'appeler la page via l'adresse localhost?
    J'y avais pensé mais cela me semble compliqué pour juste afficher une page internet.
    De plus, l'application ne doit pas être trop lourde : si ce problème de cookie n'était pas là, son poids serait de 21ko.
    Si tous les clients doivent récupérer cette application, il faudrait surcharger le serveur le moins possible.

    Je garde cette solution dans un coin de ma tête mais je préférerais intégrer un browser compatible avec mon soucis... si ça existe.

  4. #4
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 687
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par Jbwils Voir le message
    Tu penses à mettre en place un serveur web sur le poste et d'appeler la page via l'adresse localhost?
    J'y avais pensé mais cela me semble compliqué pour juste afficher une page internet.
    De plus, l'application ne doit pas être trop lourde : si ce problème de cookie n'était pas là, son poids serait de 21ko.
    Si tous les clients doivent récupérer cette application, il faudrait surcharger le serveur le moins possible.

    Je garde cette solution dans un coin de ma tête mais je préférerais intégrer un browser compatible avec mon soucis... si ça existe.
    Depuis JavaSE 6, est intégré à l'édition standard un serveur web basique qui satisferait pour ton besoin, si tu l'intègres directement dans ton application.
    Il s'utilise de la manière suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    package com.company.services;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetSocketAddress;
     
    import com.sun.net.httpserver.HttpExchange;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;
     
    public class Jatty {
     
        public static void main(String[] args) throws Exception {
     
    		HttpServer server = HttpServer.create(new InetSocketAddress(6066), 0);
            server.createContext("/", new HttpRootHandler());
            server.setExecutor(null); // creates a default executor
            server.start();
        }
     
        static class HttpRootHandler implements HttpHandler {
    	    @Override
    	    public void handle(HttpExchange t) throws IOException {
    	        String response = "Hello from Jatty";
     
    	        t.sendResponseHeaders(200, response.length());
    	        OutputStream os = t.getResponseBody();
    	        os.write(response.getBytes());
    	        os.close();
    	    }
        }
    }
    Pour tester :
    c:\curl.exe -i "http://localhost:6066

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ddoumeche Voir le message
    Depuis JavaSE 6, est intégré à l'édition standard
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    [...]
    import com.sun.net.httpserver.HttpExchange;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;
    [...]
    Oui, m'enfin c'est pas dans JavaSE mais dans le JDK d'Orable. On ne doit jamais utiliser les classes com.sun.*. C'est un risque de non portabilité. Pour embarquer un mini server web, on peut utiliser un Jetty, NanoHTTPD ou JLHTTP.

    Pour répondre à la question initiale du browser embarqué, il y a aussi la solution SWT/DJNative. Mais il n'est pas impossible d'avoir les mêmes soucis qu'avec une WebView JavaFX. Surtout que rien ne semble avoir bougé depuis 2011.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Effectivement, SWT/DJNATIVE semble abandonné donc je n'ai pas poussé de ce côté là.
    J'ai mis en place le HttpServer et ça fonctionne bien.
    Reste quelques bugs comme l'affichage des PDF qui n'est pas pris en compte ou le script qui reste sur une seule pub au lieu de tourner mais ça va se corriger.

    Merci à tous pour les réponses que vous m'avez apporté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle techno pour effectuer une requete avec jointure ?
    Par JediMaster dans le forum Accès aux données
    Réponses: 5
    Dernier message: 07/01/2009, 02h17
  2. Réponses: 5
    Dernier message: 07/01/2009, 02h17
  3. Quelles technos pour mon application web en java?
    Par _skip dans le forum Frameworks Web
    Réponses: 4
    Dernier message: 08/10/2008, 10h26
  4. quelle techno pour un site web "pro" ?
    Par italiasky dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 26/01/2008, 00h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo