Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 15h47   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 2
Points : 0
Points : 0
Par défaut Double application dans un projet symfony - problème de droit

Bonjour,

J'ai deux applications 'front' et 'back' sur un projet Symfony 1.4.8.

le back contient des modules avec des méthodes sécurisés (crédential "user"), les méthodes des modules renvoient les données en json comme un web service.

Le front doit faire appel aux méthodes sécurisées de l'application back afin de charger les données json sur les vues du front, or impossible d'accéder au méthode depuis les contrôleurs de l'application front: renvoie toujours un message d'erreur 'droit incorrect'.

Si on utilise ajax et la méthode getJson par exemple, on récupère bien le contenu json des méthodes sécurisés appelés.

En front, on a bien un user avec un id et une session et le crédential "user" mais impossible d'accéder aux méthodes sécurisées de l'application back avec le front.

Si vous savez comment dialoguer entre 2 applications symfony sur un même projet avec une gestion d'utilisateur sur une app comme un web service, merci de m'apporter un petit coup de pouce.

merci
psykofran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 12h51   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je travail sur l'étude d'un projet semblable, mais en Sf2.

En fait tu as un front qui fait l'affichage et un back qui n'en est pas un et qui serait plutôt un DataAccessService ?

Je ne comprend pas bien le rapport entre les droits sur le back et le traitement en front. L'utilisateur qui sera utilisé sur le back est-il différent de celui qui s'authentifie sur le front ?

Où sont-ce les mêmes personnes mais réparties sur deux applications différentes ?

Pourquoi deux applications différentes aussi liées ? En effet, si elle sont front et back elle sont presque sœurs siamoise, as-tu prévu, à terme, de les répartir sur des machines différentes ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 14h04   #3
Invité de passage
 
Inscription : janvier 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 2
Points : 0
Points : 0
Bonjour,

Oui mon back est un data service qui fait des appels à un réel webservice et qui fait des liaisons avec la base de données. Ses méthodes renvoient que du json (à la base c'est un backoffice pour application mobile).

Le problème c'est qu'il faut s'authentifier du côté back pour avoir accès aux différentes méthodes. Il y a une méthode de connexion qui fonctionne nickel quand on l'appelle en requête ajax. Cela construit bien une session user côté back avec un credential user.

Si j'appelle cette méthode depuis mon application front, la session n'ai pas créée et pas de retour de json (vous n'avez pas les droits). Même si je créé une session user du côté front, normalement les sessions sont partagés entre applications dans Symfony mais dans mon cas, impossible d'accéder aux méthodes sécurisés.

Pour répondre à la question, oui ce sont les même personne pour les deux appli, une appli pour le front, et l'appli back pour récupérer les données et bien entendu l'appli front peut être amené à être sur une machine différente.

Perso, j'aurais tout mis dans une seul application mais ce n'ai pas moi qui décide.

Le truc c'est que cela fonctionne en ajax (getJson) mais pas du tout en php entre 2 apps symfony.
psykofran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 08h52   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
J'ai un projet similaire.

Pour l'authentification nous avons envisagé plusieurs stratégies, la plus probable sera celle d'un jeton servi par un serveur d'authentification partagé entre tous les éléments et toutes les applications.

Dans ton cas, tu n'as pas de session, ni de partage de session. Et je ne suis pas sur qu'un partage physique des sessions soit une solution viable.

As-tu essayé en encapsulant tes demandes dans une session CURL ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web