Bug #679

Το test token για AAI δεν παίζει αν είναι κάτω το login.okeanos.grnet.gr

Added by Vangelis Koukis almost 13 years ago. Updated almost 13 years ago.

Status:Closed Start date:06/13/2011
Priority:High Due date:
Assignee:Giorgos Gousios % Done:

0%

Category:obsolete_AAI Spent time: -
Target version:v0.5

Description

Δεν είμαι σίγουρος αν αυτό είναι πραγματικό πρόβλημα, όπως περιγράφεται στο ticket, αλλά το ανοίγω για να είναι καταγεγραμμένο και να ξέρουμε ότι χρειάζεται διερεύνηση.

Σήμερα είναι κάτω τo login.okeanos.grnet.gr, λόγω αλλαγών στο δίκτυο του staging, καθώς προχωράμε προς deployment.

Το πρόβλημα είναι ότι για κάποιο λόγο οι development εγκαταστάσεις του Σύννεφου γυρίζουν συνεχώς 302, ακόμη κι όταν ο χρήστης επιχειρεί να χρησιμοποιήσει το test token.

Οπότε:
α) ιδανικά θα έπρεπε να μπορεί να χρησιμοποιηθεί το test token χωρίς να εμπλέκεται καθόλου το login.okeanos.grnet.gr
β) αν για κάποιο λόγο αυτό δεν είναι δυνατό, χρειάζεται να διερευνηθεί και να τεκμηριωθεί, ώστε να είναι καταγεγραμμένο και γνωστό για το μέλλον.

History

#1 Updated by Vangelis Koukis almost 13 years ago

Κάτι δεν έχω καταλάβει ακόμη εδώ. Τώρα παίζει.
Έκανα restart τον development server, αλλά αυτό δεν πρέπει κανονικά να κάνει διαφορά.

Ίσως άλλαξε κάτι στην κατάσταση του login.okeanos.grnet.gr?
Θα το ψάξω παραπάνω και το συζητάμε από κοντά, δεν είναι σίγουρο ότι υπάρχει το πρόβλημα που αναφέρω παραπάνω.

#2 Updated by Giorgos Gousios almost 13 years ago

Βασικά, το πρόβλημα (αν ειναι πρόβλημα) είναι ότι αν δεν ακούει ο login.okeanos.grnet.gr το redirect που στέλνει το middleware στον browser αφού του στείλει το cookie (χρησιμοποιώντας το url http://localhost:8000?test) δεν καταλήγει πουθενά και φαίνεται η όλη διαδιακασία να κολλάει. Αφού έχει πάρει ο browser το cookie θα πρέπει να λειτουργήσει κανονικά (με το URL http://localhost:8000). Αν δεν λειτουργήσει, τότε όντως υπάρχει πρόβλημα, αλλά από τις δοκιμές που έκανα φαίνεται να παίζει...

BTW, το ίδιο πρόβλημα το είχε δει o cven την προηγούμενη Τετάρτη(?) και το "λύσαμε" όπως περιγράφω.

#3 Updated by Christos Psaltis almost 13 years ago

Συναντώ και γω το ίδιο πρόβλημα που αναφέρει ο Βαγγέλης. Ωστόσο στην περίπτωση μου δεν έγινε τίποτα με το restart του server. Δοκίμασα να φτιάξω το cookie μόνος μου με το firecookie αλλά και πάλι δε με κάνει ποτέ redirect και συνεχίζω να παίρνω 302.

Υπάρχει κάποιο νεώτερο;

#4 Updated by Christos Psaltis almost 13 years ago

Εδώ κατάφερα να το ξεπεράσω τελικά φτιάχνοντας το δικό μου cookie, για λόγους πληρότητας συμπληρώνω τί έκανα.

Έφτιαξα cookie με το https://addons.mozilla.org/en-US/firefox/addon/cookies-manager-plus/. Παρόλο που έκανα την ίδια διαδικασία και με το firecookie, δεν δούλεψε.

το cookie έχει τα εξής στοιχεία:

Name: X-Auth-Token
Content: 46e427d657b20defe352804f0eb6f8a2
Host: 127.0.0.1
Path: / 
Expires: Date, december 2011

Στη συνέχεια έκανα migrate db το οποίο όμως μου χτύπησε:

/bin/python manage.py migrate db

Running migrations for db:
 ! Migration db:0005_auto__chg_field_network_owner should not have been applied before db:0005_auto__chg_field_image_format__chg_field_image_backend_id but was.
 ! Migration db:0005_auto__chg_field_network_owner should not have been applied before db:0005_auto__chg_field_image_format__chg_field_image_backend_id but was.
 ! Migration db:0004_auto__add_networkinterface should not have been applied before db:0004_auto__add_invitations but was.
 ! Migration db:0004_auto__add_networkinterface should not have been applied before db:0004_auto__add_invitations but was.
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/home/three/dev/edet/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/home/three/dev/edet/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/three/dev/edet/lib/python2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/three/dev/edet/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/home/three/dev/edet/lib/python2.6/site-packages/south/management/commands/migrate.py", line 109, in handle
    ignore_ghosts = ignore_ghosts,
  File "/home/three/dev/edet/lib/python2.6/site-packages/south/migration/__init__.py", line 196, in migrate_app
    raise exceptions.InconsistentMigrationHistory(problems)
south.exceptions.InconsistentMigrationHistory: Inconsistent migration history
The following options are available:
    --merge: will just attempt the migration ignoring any potential dependency conflicts.

Για τον λόγο αυτό έσβησα τη βάση και την ξαναέφτιαξα από την αρχή. Τώρα όλα λειτουργούν οκ.

#5 Updated by Vangelis Koukis almost 13 years ago

Christos Psaltis wrote:

Εδώ κατάφερα να το ξεπεράσω τελικά φτιάχνοντας το δικό μου cookie, για λόγους πληρότητας συμπληρώνω τί έκανα.

Μισό, δεν μου είναι ξεκάθαρο ότι υπάρχει πραγματικό πρόβλημα.
Κάναμε σήμερα δοκιμές, δεν μπορέσαμε να το replicate.

Η διαδικασία είναι η εξής:

α) ξεκινάς με τον browser χωρίς κανένα cookie στο jar του
β) πηγαίνεις στο http://host:port/?test, σε κάνει redirect στο login.okeanos.grnet.gr, στο οποίο δεν μπορεί να πάει ποτέ
παρόλα αυτά, σε αυτό το σημείο έχεις το απαιτούμενο token, αποθηκευμένο σε cookie στο jar
γ) ενώ έχει κολλήσει γιατί δεν μπορεί να βγάλει την οθόνη login του shibboleth, πηγαίνεις με το χέρι στο http://host:port
στο οποίο μπαίνεις κανονικά, γιατί έχεις το σωστό token.

Τα παραπάνω δουλεύουν ή όχι;

Έφτιαξα cookie με το https://addons.mozilla.org/en-US/firefox/addon/cookies-manager-plus/. Παρόλο που έκανα την ίδια διαδικασία και με το firecookie, δεν δούλεψε.

το cookie έχει τα εξής στοιχεία:
[...]

νομίζω αυτό δεν χρειάζεται να γίνει.

Στη συνέχεια έκανα migrate db το οποίο όμως μου χτύπησε:

[...]

Αυτό χτύπησε για το λόγο που έλεγα στο αρχικό μέηλ για μετάβαση στη v0.4.
Είχαμε migrations από πολλά branches. Μια πρώτη λύση είναι να κάνεις migrate --merge, οπότε σταματά να γκρινιάζει από τη σειρά.

Παρόλα αυτά, το ζήτημα της σειριοποίησης των migrations υφίσταται, και έχει ανοιχτεί ως ticket (#503) για να το δούμε επισταμένα.

Για τον λόγο αυτό έσβησα τη βάση και την ξαναέφτιαξα από την αρχή. Τώρα όλα λειτουργούν οκ.

#6 Updated by Christos Psaltis almost 13 years ago

Vangelis Koukis wrote:

Η διαδικασία είναι η εξής:

α) ξεκινάς με τον browser χωρίς κανένα cookie στο jar του
β) πηγαίνεις στο http://host:port/?test, σε κάνει redirect στο login.okeanos.grnet.gr, στο οποίο δεν μπορεί να πάει ποτέ
παρόλα αυτά, σε αυτό το σημείο έχεις το απαιτούμενο token, αποθηκευμένο σε cookie στο jar
γ) ενώ έχει κολλήσει γιατί δεν μπορεί να βγάλει την οθόνη login του shibboleth, πηγαίνεις με το χέρι στο http://host:port
στο οποίο μπαίνεις κανονικά, γιατί έχεις το σωστό token.

Τα παραπάνω δουλεύουν ή όχι;

Τα παραπάνω δεν δουλεύουν σε κανέναν browser που δοκιμάσαμε. Δεν ξέρω πώς μπορώ να βοηθήσω στο debugging αυτού, κοίτα τί συμβαίνει:

Όταν πάω στο http://host:port/?test o django server σε αυτήν τη φάση μου λέει:

[14/Jun/2011 12:34:25] "GET /?test HTTP/1.1" 302 0

Αφού πάρω timeout ή κάποιο αντίστοιχο error, ελέγχω τα cookies και δεν έχω πάρει τίποτα. Οι browsers εννοείται ότι είναι ρυθμισμένοι να παίρνουν όλα τα coookies.

Εάν πάω στο http://host:port/ τότε ο dinago server μου λέει:

[14/Jun/2011 12:34:25] "GET / HTTP/1.1" 302 0

#7 Updated by Giorgos Gousios almost 13 years ago

Δοκιμάστε να θέσετε το πεδίο BYPASS_AUTHENTICATION σε true στο settings.py

#8 Updated by Christos Psaltis almost 13 years ago

Με αυτό που προτείνεις λύθηκε προσωρινά το θέμα.

Το αρχικό πρόβλημα συμβαίνει και σε σας σε τοπικό installation; Εάν όχι, μπορούμε κάπως να βοηθήσουμε στο debugging;

#9 Updated by Giorgos Gousios almost 13 years ago

Με αυτό που προτείνεις λύθηκε προσωρινά το θέμα.

Τι εννοείς προσωρινά? Το BYPASS_AUTHENTICATION είναι εκεί για να μην επιτρέπεται να πέρνει κάποιος test tokens στο κανονικό install. Aν είναι false είναι λογικό να μην δουλεύει.

Το αρχικό πρόβλημα συμβαίνει και σε σας σε τοπικό installation; Εάν όχι, μπορούμε κάπως να βοηθήσουμε στο debugging;

Δεν είναι ακριβώς πρόβλημα. Απλά o host προς τον οποίο δίχνουν τα redirects είναι κάτω, τα υπόλοιπα δουλεύουν όπως περιέγραψε ο Β.

#10 Updated by Vangelis Koukis almost 13 years ago

  • Status changed from Assigned to Closed

Αυτό ήταν μάλλον παρανόηση του τρόπου λειτουργίας, το κλείνω.

Also available in: Atom PDF