IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

ClassLoader et plug-in


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut ClassLoader et plug-in
    Bonjour à tous !

    Je cherche a créer une plateforme me permettant de gérer des applications dynamiquement. Je m'explique : en gros on pourrais installer de nouvelles 'applications' (des .jar) dynamiquement et la plateforme utiliserait des ClassLoader afin d'instancier dynamiquement ces nouvelles 'applications'. Un peu à la manière des systèmes comme android qui permettent d'installer de nouvelles applications. Jusque là, pas de problème, la réflexivité permet tout cela.
    Mais moi je voudrais pouvoir limiter ce que ces 'applications' peuvent faire. En effet, je voudrais par exemple qu'elles ne puissent pas accéder à tous les fichiers du disque mais seulement à un espace limité. Pour cela, il faudrait faire un truc du genre redéfinir la classe File ou autre mais là je bloque et je ne sais pas comment m'y prendre. (Je ne sais pas si je suis clair mais bon ... ).

    Donc si quelqu'un à une idée pour solutionner mon problème ca serait sympa de partager.

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ce genre de boulot, en java, est le rôle du SecurityManager. Tu dois écrire ton propre securitymanager et le définir comme security manager par défaut. Ensuite, il devra déterminer, pour ses appel, par quel classloader les appels ont lieu afin d'autoriser ou non les opération. C'est pas une mince affaire à mettre en place.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Je sais que pour changer le securityManager il faut utiliser System.setSecurityManager(). Mais ensuite lorsque je créer mon propre securitymanager, je ne sais pas comment savoir par quel classloader l'appel a été fait ...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Regarde le code du security manager par défaut pour avoir une idée de comment il fonctionne.

    currentClassLoader() sur le SecurityManager(). Note que la sécurité basée sur le classloader n'est plus recommandée, on recommande maintenant la securité basée sur le SecurityContext (à voir dans la doc, je ne connais pas )

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    D'accord, merci je ais chercher de ce coté là =)

    J'ai aussi vu dans la doc de ClassLoader la methode defineClass (http://docs.oracle.com/javase/6/docs...String,%20byte[],%20int,%20int,%20java.security.ProtectionDomain%29 ) dans laquelle on peut spécifier un PotectionDomain . Et dans la doc de ProtectionDomain on tombe sur ca: http://docs.oracle.com/javase/6/docs...rity.Principal[]%29 avec écrit "This constructor is typically used by ClassLoaders and DomainCombiners which delegate to Policy to actively associate the permissions granted to this domain. This constructor affords the Policy provider the opportunity to augment the supplied PermissionCollection to reflect policy changes. " Mais je n'ai pas réussi à m'en sevir ... Si quelqu'un sait comment utiliser cette classe =)

Discussions similaires

  1. Eclipse plug-in et ClassLoader
    Par Nehmé dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 15/03/2010, 00h21
  2. DLL & Plug-ins
    Par VincentB dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2003, 17h16
  3. IE [Applet] Plug-in problème d'affichage
    Par Tonton Luc dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/06/2003, 08h28
  4. Développement de plug-in -> vue graphique!
    Par yassine_23 dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 01/04/2003, 18h04
  5. Flash et plug in 3dsmax 5
    Par VincentB dans le forum Flash
    Réponses: 8
    Dernier message: 21/03/2003, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo