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

AngularJS Discussion :

Basic auth -> cookie JSESSIONID


Sujet :

AngularJS

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Points : 314
    Points
    314
    Par défaut Basic auth -> cookie JSESSIONID
    Bonjour,

    Je viens de poster sur le forum jboss un problème sur mon authentification est c'est réglé.... du moins quand j'appelle mes webservices en natif par une extention de firefox.

    Maintenant quand je passe par angular ça se complique.
    Je m'authentifie sur mon serveur et le cookie JSESSIONID généré par mon jboss une fois l'authentification terminée ne se retrouve pas dans les cookies de mon navigateur, alors qu'il apparaît quand je passe par le plugin de firefox.

    Donc quand j'accède à un autre webservice (du genre déconnexion) mon jboss ne retrouve pas ma session.
    Que faire ?


    Voici mon code html :
    Code html : 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <!DOCTYPE html>
    <html lang="fr" ng-app="app">
     
    <head>
        <meta charset="utf-8">
        <title>Arenapolis</title>
        <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">
        <link rel="stylesheet" href="css/app.css">
        <script src="bower_components/angular/angular.js"></script>
        <script src="js/app.js"></script>
        <script src="js/controllers.js"></script>
    </head>
     
    <body>
        <section>
            <nav class='navbar navbar-inverse navbar-fixed-top' ²>
                <ul class="nav navbar-nav">
                    <li>
                        <a class=h ref="/app">Bâtiments</a>
                    </li>
                    <li>
                        <a class=h ref="/app/cite">Cités</a>
                    </li>
                    <li>
                        <a class=h ref="/app/arene">Arènes</a>
                    </li>
                </ul>
                <div ng-controller="connexion-ctrl">
                    <form class="navbar-form navbar-right "  ng-submit="connection()" ) ng-show="donneeConnection==null">
                        <div class="form-group input-group-sm">
                            <input placeholder="Courriel" class="form-control" type="email" ng-model="identifiant.userId">
                        </div>
                        <div class="form-group input-group-sm">
                            <input placeholder="Mot de passe" class="form-control" type="password" ng-model="identifiant.password">
                        </div>
                        <button type="submit" class="btn-xs btn-primary">Ok</button>
                    </form>
                    <div ng-show="donneeConnection!=null" class="navbar-form navbar-right ">
                        <button type="button" class="btn-xs btn-primary" ng-click="deconnexion()">deconnexion</button>
                        <span class="label label-inverse form-group" ng-bind="donneeConnection.loginName"/>
     
                    </div>
                </div>
            </nav>
        </section>
    </body>
     
    </html>

    Puis le app.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'use strict';
     
    angular.module('arenaPolis')
     
    .config(['$httpProvider', function($httpProvider) {
      $httpProvider.defaults.withCredentials = true;
    }]);
    Et enfin le controller.js
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    'use strict';
     
    var app = angular.module("app", []);
     
    app.controller('connexion-ctrl', function ($scope,$http){
        $scope.identifiant = {
            userId : '',
            password : ''
        };
        $scope.estConnecte = false;
     
        $scope.connection = function(){
            var promise=$http({
                method : 'POST',
                url : "http://localhost:8080/arenapolis/rs/authentification",
                headers :{'Content-Type': 'application/x-authc-username-password+json'},
                data : $scope.identifiant
            });
            promise.success(function(response){
                $scope.donneeConnection=response;
                $scope.estConnecte = true;
                $scope.identifiant.userId=null;
                $scope.identifiant.password=null;
            });
            promise.error(function(response,status){
                $scope.erreur=response;
                $scope.etat=status;
                $scope.estConnecte = false;
            });
        };
     
        $scope.deconnexion = function(){
             var promise=$http({
                method : 'POST',
                url : "http://localhost:8080/arenapolis/rs/deconnexion"
            });
            promise.success(function(response){
                $scope.donneeConnection=null;
                $scope.estConnecte = false;
     
            });
            promise.error(function(response,status){
                $scope.erreur=response;
                $scope.etat=status;
                $scope.estConnecte = false;
            });
        };
    });

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2006
    Messages : 380
    Points : 314
    Points
    314
    Par défaut
    A croire que c'est fait exprès...
    Dès que je post sur ce forum alors que ça fait deux jours que je cherche je trouve (sur un autre forum mais bon)
    Alors voilà la solution
    il faut mettre : withCredentials: true dans chaque requête.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/09/2013, 14h28
  2. Aucun nom de cookie retourné pour le JSESSIONID
    Par allserv dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 14/08/2013, 13h55
  3. Cookies et JSessionID
    Par assuryan dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 11/06/2008, 11h52
  4. [Sécurité] Combiner BASIC Auth et SSL
    Par P4dre dans le forum Services Web
    Réponses: 5
    Dernier message: 03/10/2007, 09h30
  5. Renommer le cookie de session (JSESSIONID)
    Par Dripple dans le forum JOnAS
    Réponses: 2
    Dernier message: 24/08/2007, 14h20

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