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 :

Imprimer un document PDF avec un autre compte utilisateur que celui utilisé pour lancer le process Java


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    DevOps
    Inscrit en
    Janvier 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Imprimer un document PDF avec un autre compte utilisateur que celui utilisé pour lancer le process Java
    Bonjour à tous,

    Je cherche un moyen d'imprimer un document PDF ou tout autre document depuis un process Java, en spécifiant un autre comptre utilisateur que celui utilisé pour lancer le process.

    Mon process est un Web Service executé tournant sur un serveur Tomcat, lancé avec un compte utilisateur A.

    Un utilisateur B invoque ce webservice en passant en paramètre le nom de l'imprimante souhaité, le document à imprimé, et au minimum son identifant (windows dans mon cas).
    Mon web service va alors dans un premier temps vérifier que l'imprimante spécifiée est bien disponible, et si c'est le cas, lancer l'impression du document sur cette dernière avec comme utilisateur ayyant demandé l'impression l'utilisateur B, de façon à ce qu'un administrateur puisse voir que c'est bien l'utilisateur B qui a lancé l'impression et non l'utilisateur A.

    Quelqu'un aurait une piste ?

  2. #2
    Membre expert

    Avatar de Songbird
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Juin 2015
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 493
    Points : 3 872
    Points
    3 872
    Billets dans le blog
    8
    Par défaut
    Salut,

    C'est assez tendu de questionner d'autres processus à partir de l'API java. Peut-être devrais-tu questionner les processus que tu recherches en créant une routine dans un fichier batch ? (Je ne pourrais pas te donner d'exemples concrets, je ne travaille pas sous Windows )
    Avant de poster: FAQ Rust; FAQ Dart; FAQ Java; FAQ JavaFX.
    Vous souhaiteriez vous introduire au langage Rust ? C'est par ici ou ici !
    Une question à propos du langage ? N'hésitez pas à vous rendre sur le forum !


    Pour contribuer à la rubrique, vous pouvez me contacter par MP (Sorry, we're closed!) ou contacter directement la rédaction.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je ne comprends pas trop où se trouve le problème. Le service qui créé le document le dépose dans un dossier du serveur. Le service qui l'imprime, charge le document et l'imprime en ajoutant les informations de l'utilisateur qui l'invoque. Peu importe les processus.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Candidat au Club
    Homme Profil pro
    DevOps
    Inscrit en
    Janvier 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Mon problème est que mon webservice tourne bien sûr dans un container Tomcat, qui est lancé en tant que service, soit avec un compte utilisateur en particulier.

    Lorsque j'imprime donc un document quelconque depuis mon webservice, ce dernier arrive bien dans le spouleur d'impression, mais avec comme propriétaire de l'impression l'utilisateur qui a démarré la session Tomcat...

    Or je souhaite que le propriétaire du job d'impression qui apparait dans le spooleur soit un autre utilisateur du domaine (en l'occurence celui qui a invoqué mon webservice ...).

    Je pourrais très bien démarrer un nouveau process avec le bon compte utilisateur et lancer mon impression depuis ce dernier, mais ce n'est vraiement pas génial en terme de temps de réponse. Je vais avoir à terme environ 200 users qui vont demander leur impressions via mon webservice, donc si pour chacun je dois instancier un nouveau process (chargement de la JVM, instanciation des classes etc ...) ça risque d'ètre un goulet d'étranglement ...
    Et dernier point, je souhaite que mon webservice soit indépendant de l'OS... Donc invoquer des méthodes natives (DLL Windows par exemple) au travers de JNA, c'est pas génial non plus ...

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    En résumé, tu cherches à piloter le Print Spooler de Windows. Une notion dont Java cherche à s'abstraire. Sans passer par des DLL (donc JNI/JNA), une API dédiée ou des commandes systèmes, ça me semble exclu d'avance. Chercher éventuellement s'il existe un attribut dans un des sets d'attributs (PrintRequestAttributeSet ou PrintJobAttributeSet). Mais je doute qu'on puisse changer le propriétaire de l'impression : ça voudrait dire qu'on pourrait se faire passer pour un autre facilement. Est-ce que tu ne peux pas simplement mettre le nom d'utilisateur dans le nom de job ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Candidat au Club
    Homme Profil pro
    DevOps
    Inscrit en
    Janvier 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    oui en gros c'est un peu ça... J'ai vu qu'il existe un attribut "JobOriginatingUserName", mais visiblement il n'est pas pris en compte et il existe très peu d'exemples sur le net ....

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ce serait plutôt un RequestingUserName (PrintRequestAttribute), mais tous les services ne le supportent pas ou le gère eux-même et donc ignorent celui qui est fourni au job. Le JobOriginatingUserName est il me semble toujours géré par le service qui lui affectera la valeur du RequestingUserName.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Candidat au Club
    Homme Profil pro
    DevOps
    Inscrit en
    Janvier 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2016
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    ah ok !
    Je vais rechercher de ce côté là;

    Merci !

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/12/2015, 22h00
  2. [VBA-W]Imprimer doc vers pdf avec pdfcreator
    Par Mut dans le forum VBA Word
    Réponses: 2
    Dernier message: 08/12/2006, 14h39
  3. ouvrir document pdf avec chemin absolu complet
    Par aurelie83 dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2006, 17h48
  4. Ouvrir un PDF avec un autre logiciel qu'Acrobat
    Par JimmyB dans le forum Access
    Réponses: 2
    Dernier message: 18/10/2006, 21h27
  5. Protection de document PDF avec RAVE Report.
    Par Delphi2703 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/02/2006, 08h33

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