2010-03-22 9 views
0

J'essaie de sécuriser mon application Flex au sein de mon application Web Java. Actuellement, mon application Web Java, gère la journalisation et la gestion des comptes d'utilisateurs et autres. Je me demandais s'il existe un moyen de partager essentiellement ces informations d'identification avec le film Flash dans un mécanisme sécurisé? Par exemple, si vous vous connectez, nous souhaitons que vous puissiez enregistrer des éléments dans l'application Flex pour cet utilisateur, uniquement si cet utilisateur est connecté bien sûr. Des idées? Toute aide est grandement appréciée.Flex Inheriting Connecté Utilisateur

Mise à jour: Je m'excuse pour le flou. Je cours Tomcat 5.5, Java 6 faisant le développement de portlet à l'intérieur d'un portail de Vignette. Toutes les communications de données se font via Blaze DS. Dans notre environnement, nous avons des services de données et le portail gère les connexions, la gestion des utilisateurs et autres. Actuellement, nous ne faisons que transmettre le nom d'utilisateur au film flash, que je ne trouve pas très sécurisé.

Répondre

0

Vous pouvez transmettre des données à un film Flash en utilisant flashVars pouvant être généré dans une JSP. Les données peuvent être une clé unique générée sur le serveur et associée à un identifiant d'utilisateur. L'application Flex peut alors prendre la clé et l'utiliser pour se connecter via un appel de service Web. Le serveur validera alors la clé et autorisera l'accès au compte de l'utilisateur.

+0

À quel moment invalideriez-vous la clé? La session est terminée dans le client Web avec le cookie basé sur la session expire. – Nick

+0

La clé peut être une clé unique et expirer dès qu'elle est utilisée, en basculant vers la session de service Web une fois qu'elle est authentifiée. Côté client, la session expire lorsque la page est modifiée ou peut être synchronisée via les appels ExternalInterface. La session côté serveur peut être détruite en même temps que la session HttpSession via un HttpSessionListener, ou elle peut expirer de manière indépendante via un timeout. – fgb

0

C'est une question très générale et il est difficile de fournir une bonne réponse sans savoir quelle est votre architecture actuelle. L'application Flex utilise le même serveur Web que votre application Web? Qu'est-ce que vous utilisez pour discuter avec le backend (services web, sockets, socket rtmp)? Si vous partagez le même serveur Web, vous pouvez accéder à la même session HTTP et vérifier si l'utilisateur est connecté ou non.

Si vous devez savoir dans votre application Flex que l'utilisateur vient de se déconnecter de l'application HTML ou que la session a expiré, vous avez plusieurs options, toujours selon votre architecture. En supposant que l'application HTML a déjà été notifiée, vous pouvez appeler via ExternalInterface une méthode de l'application Flex. Si ce n'est pas le cas (la session a expiré pendant que vous utilisez l'application Flex), vous saurez quand vous essayez d'enregistrer vos données.

+0

Question mise à jour avec l'architecture. L'application Flex, est juste un composant de l'application web, ce n'est pas l'application en soi. Dans notre cas, le portail est responsable d'indiquer si l'utilisateur est ou n'est pas connecté. Comme il s'agit d'un produit acheté, il n'est pas facile d'entrer dans les internes et de changer ce dont j'ai besoin. Ce qui me ramène à la question initiale de partager en toute sécurité les informations d'identification entre les deux applications, même si elles sont servies via le même conteneur. – Nick

Questions connexes