Question

Je suis en train d'écrire une application Web en utilisant Struts et Hibernate. Récemment, j'ai découvert GWT et API de visualisation . Tout cela avait l'air très intéressant et offre des fonctionnalités AJAX que mes besoins d'applications. Je suis un débutant qui est tout à fait confus ....

Où placer les contrôles de niveau d'accès aux données?

Dans l'application Web, les utilisateurs ont différents niveaux d'accès aux données. par exemple. différentes combinaisons de privilèges de lecture / écriture pour des données différentes. Il y aura une sorte de profil d'utilisateur que les contrôles d'application pour toutes les données quand on accède ou modifié. L'utilisateur aura accès aux données selon le résultat - a nié avoir accès ou l'affichage peut voir les données, mais ne peut pas changer, etc. Je ne sais pas où mettre ce contrôle particulier. Je suppose que je pourrais avoir ce code dans le, chaque fois que les données de DAO opération est traitée, vérifier manuellement les données interrogées contre le profil. Ou, le mettre dans le couche logique / affichage entreprise , si un utilisateur ne dispose pas d'un privilège d'accès aux données, prendre le bouton loin de l'utilisateur. Ou deux ? Ou est-il un fichier de configuration Mise en veille prolongée quelque part je peux spécifier des privilèges d'accès aux données pour toutes les tables cartographiée?

Les meilleures pratiques pour la transmission d'informations autour de

Il y a grand besoin de communication entre le modèle / vue / contrôleur, faire appel RPC pour GWT et transmettre des données hors du code de visualisation pour afficher les graphiques et les choses. Je devine que ce besoin sans aucun doute une sorte de Traducteur qui convertit des objets Java en objets JSON afin de faire des appels GWT-rpc et dessiner des graphiques avec l'API de visualisation. Ai-je raison? En outre, en termes d'information passant autour de Struts et Hiberante - est l'écriture Objets de transfert de données une bonne idée? Ensuite, il suffit passer haricots tout le temps? Ou (je viens suis tombé sur ce today..not même que si je comprends correctement) se lient peut-être les objets sur JNDI , et d'y accéder à partir d'autres parties du programme?

Toute entrée / clarification sera apprécié. Merci beaucoup!

Était-ce utile?

La solution

vérifie le niveau d'accès:

Je voudrais séparer les contrôles de niveau d'accès dans sa propre classe, et que votre appel « contrôleurs » les gestionnaires d'accès d'abord avant d'appeler DAO de. à-dire, chaque action effectue un contrôle avant de faire le DAO appelle pour obtenir / insérer des données.

mais une meilleure méthode, si vous utilisez GWT, est de faire des appels RPC au lieu d'utiliser des actions Struts. les appels deviennent les « rpc contrôleurs » je l'ai mentionné ci-dessus, et peuvent effectuer des contrôles d'accès en utilisant les gestionnaires i mentionnés ci-dessus - à savoir, les actions elminitate.

que pour les gestionnaires d'accès, je vous recommande tous les privilèges d'énumérer accès granulaires et Compose ces priviledges dans un ensemble qui peut être associé à chaque utilisateur / profil / whatever.

d'information qui passe autour GWT est une douleur à travailler avec mise en veille prolongée - vous pouvez essayer d'utiliser Gilead , mais je ne ai pas eu beaucoup de succès avec elle , son trop lourd pour moi. votre idée avec JSON de conversion est la bonne façon d'aller dans GWT IMHO. GWT 1.5 prend en charge ce qui est appelé javascript superposition d'objets, ce qui vous permet de revenir JSON, et « SUPERPOSER » dans un objet java GWT directement avec peu de code de votre part. vérifier ce post pour plus d'informations.

L'autre méthode consiste à rouler votre propre installation de production DTO (qui est ce que Gilead est censé faire, mais je ne pense pas qu'il ne autoproduction? Pas sûr). mettre en œuvre dans le cadre de votre construction. son un peu de travail supplémentaire qui ne serais pas la peine si ce ne est pas un grand projet.

Autres conseils

Je ne peux pas parler beaucoup au sujet de votre première question parce que je n'aime vraiment pas quoi que ce soit en utilisant Struts pour GWT liées.

Quant à votre deuxième question, non vous ne devriez pas avoir à utiliser une JSON. Il semble que votre arrière est Java, ce qui signifie que le mécanisme RPC GWT simplement travailler avec POJO. Alors vous suffit de créer les objets dont vous avez besoin pour le dessin et les passer dans les deux sens entre votre client et le serveur. GWT fera tous les trucs RPC pour vous hors de la boîte.

Les objets de transfert de données d'écriture peut être nécessaire, mais seulement si vos fichiers de modèle de mise en veille prolongée contiennent des choses que le compilateur GWT ne peuvent pas comprendre. Normalement, je EJB3 utilisateur et Stripes (au lieu de Hibernate et Struts) et dans mon cas, je ne dois écrire des objets de transfert de données, je viens d'utiliser les POJO EJB3 et les passer entre mon client et le serveur.

vérifie le niveau d'accès des données à côté du serveur est le moyen le plus sûr. Mais encore GWT génère un JS emballé. Vous pouvez le faire sur le côté client. Mais dans ce profil de l'utilisateur de cas doit être vérifié / tiré par les cheveux dans le / du côté serveur à chaque fois.

repassais d'info autour de: Je suis en utilisant des chaînes délimitées dans le vecteur. Et il fonctionne bien ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top