Comment extraire les éléments d'une application java vers une base de données?

Résolu
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007 - 27 mars 2007 à 00:07
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 - 29 mars 2007 à 00:13
Bonsoir tout le monde
enfait je suis entrain de chercher une solution à mon pfe qui devrait être une application java qui permet de sécuriser n'importe qu'elle autre application java qui contient un menu avec des éléments qui s'affiche selon le role et les droits de l'utilisateur spécifiés c'est à dire la tache qui m'a été confiée c'est d'extraire tout d'abord tous les éléments de l'application (Scan) ensuite de mettre ses éléments dans une base de données (Oracle par exemple) et par la suite gérer la sécurité suivant les roles des utlisateurs qu'on a.
Mon probleme maintenant consiste à comment extraire(scanner) les éléments de n'importe quel application java et les mettre dans une base,
je suis vraiment bloqué dans ce point j'espere vaiment que vous m'aidiez
et Merci d'avance

23 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
27 mars 2007 à 16:10
Salut:

Je t'encourages à utiliser un fichier XML pour décrire ton menu, c'est mieux que d'utiliser une structure de données.

// Un exemple simple
<?xml version="1.0"?>
<menu-bar>

    <menu id="fichier">
       <menu-item id="ouvrir"/>
       <menu-separator/>
       <menu-item id="quitter"/>
    </menu>

   
<menu id="edition">

       <menu-item id="rechercher"/>

       <menu-separator/>

       <menu id="option">
          <menu-item id="option1"/>
         
<menu-item id="option2"/>


       </menu>

    </menu>

    // ...


</menu-bar>

Avec les parseur JAXP, JAXB, SAX, DOM, ... tu peux faire toutes les manipulations aisément. (marshall/unmarshall)


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
28 mars 2007 à 10:43
Yop yop,

alors c est comme tu veux.
Perso j verrai les choses comme ca :
- T as plusieurs fichiers xml qui pour chacun te décrivent la tronche du menu pour chaque type d utilisateur (admin, normal, boufon ...).
- En base, via le login tu récupère le type de l admin.
- Suivant le type tu charge le bon fichier xml qui te décrira ton menu. Ici t as 2 possibilité :
a) soit écrire le mapping type d utilisateur <-> fichier en dur via ta classe java le probleme c est que quand tu veux rajouter un autre type d utilisateur ben tu dois retoucher le code
b) Soit utiliser encore un autre fichier xml qui te fais la correspondance entre le type d utilisateur et le fichier à charger.
- Apres tu charge ton fichier, tu construit ton menu et ton appli tourne (pense aux factory comme je t ai conseillé avant)

Pour ce qui est des outils pour parser du xml Ombitious_Developper t en a montré pleins et franchement y a plétore (tain j aime bien ce mot) de tutoriaux sur le net qui te montreront comment faire tout ca, là faudra chercher un peu mais c est aussi le boulot en info de trouver de la doc !

++ Toinou
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
27 mars 2007 à 01:38
Salut:

"extraire" à partir du code source ou du bytecode.

Pourquoi ne pas rendre ton application plus dynamique dans le sens ou les menus à afficher pour un rôle donné soit en temps d'exécution [runtime].

Sans à se casser la tête quel menu laisser accessible et quel menu afficher.

Tu peux faire une sorte de fichier de configuration.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
27 mars 2007 à 01:54
Salut:

J'espère avoir un peu compris ton problème.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 14:09
Merci pour votre réponse, enfait,c vrai que faire un fichier de configuration est plus simple mais le probleme c'est que je dois développer une application qui permet d'extraire ces éléments, je ne sais pas , enfait j'ai vu pas mal de stratégies de sécurité qui parle de ça comme ACEGI mais elle ne traire que l'authentification sur une application ou le filtrage d'accées mais moi je ve dois extraire d'abord à partir du CODE SOURCE tous les éléments de l'interface puis les répartir ensuite suivant les rôles des utilisateurs.
j'espere que vous m'avez bien compris en attendant toujours votre aide je vous remercie encore une fois
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 14:24
Pour être plus précis l'extraction doit se faire au niveau de la barre de menu de l'application ainsi que les sous menus, on extrait tous les éléments qui peuvent être des MenuItem normalement ensuite l'affichage de ces menus doit être suivant les roles de l'utilisateur qui va se connecter
Merci
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
27 mars 2007 à 15:26
Salut Ami:

Comme il s'agit de scanner le code source il faut que tu programme ton propre parseur de fichiers source pour extraire une structure de données arborescente ou un fichier XML contenant tous les JMenu et les JMenuItem et le JMenuBar.

A présent je n'ai pas un parseur sous la main, mais je te conseille de chercher des exemples de code sources de parseurs en Java OpenSource pour en prende comme point de départ.

Autre conseille, jettes un coup d'oeil sur la classe "StreamTokenizer" c'est bon parseur de flux qui extrait des tokens (nombres, texte, ...) suivant une table syntaxique.

Bonne chance ...
________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
27 mars 2007 à 15:29
Yopla,

ca me dis bien de t aider mais la il faudrai un peu plus de précisions :
- ton application doit etre externe à tout programme java et agir "a distance" sur l affichage ou non des MenuItem ou ton application possede des MenuItem que tu veux désactiver ??
- Tu récupère ou les infos du gas qui utilise l appli pour apres aller voir en BD ses droits.
- Tu dois scanner le bytecode ou tu peux introspecter ton application ???

++ Toinou
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
27 mars 2007 à 15:30
Salut:

En réflichissant bien, du dois raisonner sur:
1. Toutes les déclarations de variables/attributs de l'un des types suivant:
JMenuBar, JMenu, JMenuItem.
(C'est la première phase de détermination de tous les composants de ton menu)

2. La deuxième étape est de déterminer les relation de parenté (parent-enfant)
qui s'exprime via la méthode add (). Comme ça tu crées tous les chainages possibles.

3. J'espère que mes idées simplistes peuvent t'aider. 

________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 15:56
Merci tous pour votre réponse et pour vous répondre super_toinou ;
Mon application doit être externe à une application java(une seule) et qui doit être utilisé par un administrateur qui lui seul pourra attribuer les droits à des utilisateurs donc notre application doit scanner une application ke nous avons le code source qui contient un login et mot de passe au debut ensuite un menu s'affiche suivant l'utilisateur connecté et nous voulons que ce menu ainsi que ses fonctionnalités soit paramétrable suivant les drois qui vont être affectés par l'administrateur
j'espere que vous pouvez m'aider mnt et merci beaucoup a vous tous
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 16:00
Voila maintenant c plus clair l'application que mon programme dois scanner plus exactement est une application de gestion de scolarité désolé de ne pa etre clair au début parce que mon encadreur ne m'as pas bien eqpliqué ça au début donc il s'agit d'une seule application qu'on va scanner et administrer
Merci
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 16:43
Merci bcp Ombitious_Developper je vais bien penser à cette solution
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
27 mars 2007 à 16:53
Yop yop,

en fait y a un truc que j pige pas dans l histoire, tu dois pouvoir restreindre certaines parties d'une appli sans la toucher. Donc tu doit par exemple virer des menus items alors que t as pas la main sur le code source ???
J suis d accord avec Ombitious_Developper pour le menu mais si ton appli totalement externe a pas un menu comme ca comment tu vas faire ??? Tu peux pas y toucher !!
Bref ca m a l air un peu mystique ton projet. Tu veux a distance, alors que les deux programmes s executent dans des JVM différentes cacher ou 'disabler' une partie de l appli alors que rien ne te garanti par exemple que les bouttons soient accessibles (genre il sont private sans getter).

En gros la je sèche !
++ Toinou
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 17:31
Merci pour votre réponse
oui super_toinou vous avez raison je pense que je dois changer l'idée de l'application externe c'est evident car comme vous dites je dois agir sur les composants de l'application source suivant l'utilisateur donc qu'est ce que vous me proposez super_toinou pour rémédier à ça? normalement l'administrateur donc à doit se connecter comme tout autre utlisisateur ensuite il aura une interace différente des autres avec des foncionnalité d'administration des droits et tout ça bon dans ce cas vous pouvez me dire maintenant comment j'extrait les éléments sans avoir recours à un fichier xml en ayant la main sur le code source mnt?
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
27 mars 2007 à 17:40
Yopla,

ben t as plusieurs solutions, des jolies et des moches, rapides, moins rapide. Si tu veux pas toucher un fichier XML alors a la limite t as qu'a utiliser une factory de menu et suivant les droits de l'utilisateur le menu sera construit différemment. Faudra juste que dans le code où il construise le menu, tu greffe l appel à la factory qui elle te construire correctement le menu. Ce sera ta factory qui ira voir en base les droits de l utilisateur et qui renverra un menu standard ou un menu admin
Il n empeche la solution d'Ombitious_Developper est pas mal du tout aussi, décrire dans un fichier xml la tronche du menu et la charger apres te permettra de ne pas toucher le code pour changer le menu. Dans ce cas suivant l utilisateur tu chargera tel ou tel fichier qui représentera ton menu.

++ Toinou
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
27 mars 2007 à 20:02
Merci pour votre réponse
Bon je pense maintenant je vais me mettre a voir comment utiliser ce fichier xml,
j'aimerai que vous m'expliquiez encore un peu svp, dans mon cas donc je dois utiliser un fichier xml pour décrire mon menu complet et la gestion des utilisateurs/menus doit être décrite dans d'autres fichiers java selon le type du menu défini pour chaque utilisateur c'est ça?
si vous pouvez me donner un site qui explique l'utilisation d'un fichier xml avec une application java ça serait gentil de votre part
Merci encore une fois pour votre aide
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 mars 2007 à 10:46
Salut,

[auteurdetail.aspx?ID=283222 super_toinou]>c'est Pléthore et non plétore
Pléthore: subst. fém. Abondance excessive

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
28 mars 2007 à 11:57
Hey twinuts !!

merci pour la correction, il est vrai que c est important que notre belle langue française soit respectée scrupuleusement sur ce forum (j'écris ceci avec une main sur le c'ur en écoutant la marseillaise) !!

Pour m en assurer je vais donc faire une passe sur les posts (tout particulièrement les tiens...) pour vérifier tout ça !! ;-)

^^
++ Toinou
PS: j'ai passé mon post au correcteur orthographique d'Outlook normalement ca devrait être bon !!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
28 mars 2007 à 12:17
Salut,

lol nan mais je suis une quiche en français, j'ai appris c/c++ en LV1 et java en LV2 et la je prend des cours du soir pour le français ;), si je t'ai corrigé c'est juste que je ne connaissais pas ce mot et google à corrigé l'orthographe :), fin bon pour ce qui est du français c'est sûr qu'il serait bien que certains se force un minimum....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
29 mars 2007 à 00:03
Merci beaucoup pour votre réponse tous vous m'avez aidé vraiment
0
Rejoignez-nous