J'ai un programme Java qui roule bien lorsque je n'active aucune sécurité et que je donne toutes les permissions. Maintenant, je dois restreindre les accès et c'est ici que ça se gâte.
Tout d'abord, DB2 V9 demande les permissions en écriture et lecture sur toutes les propriétés. Après ça, j'ai quand même l'erreur suivante, mais ce n'est pas une exception lancée par le gestionnaire de sécurité. Et ce message, il n'est pas dans le catalogue des messages DB2 re-
.
Voici le message et la trace d'exécution. Si quelqu'un a une idée de ce qui manque à DB2 pour être content, je le serais aussi.
Les trois permières méthodes dans la trace sont les miennes et la méthode defineStates() ce qu'elle fait, c'est un SELECT sur une table de deux colonnes et elle accumule les valeurs dans une ArrayList Java pour usage futur. Donc, à ce stade, la connexion à DB2 est active.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 [jcc][t4][10199][10462][3.50.152] Required character converter is not available. ERRORCODE=-4220, SQLSTATE=null com.ibm.db2.jcc.b.wc.a(wc.java:55) com.ibm.db2.jcc.b.wc.a(wc.java:119) com.ibm.db2.jcc.b.bc.a(bc.java:1758) com.ibm.db2.jcc.b.bc.n(bc.java:496) com.ibm.db2.jcc.b.bc.F(bc.java:1263) com.ibm.db2.jcc.b.jk.d(jk.java:939) com.ibm.db2.jcc.b.jk.getString(jk.java:917) com.ibm.db2.jcc.b.jk.getString(jk.java:1369) ca.cids.map.email.EmailAgentImpl.defineStates(EmailAgentImpl.java:257) ca.cids.map.email.EmailAgentImpl.<init>(EmailAgentImpl.java:176) ca.cids.map.email.EmailAgentImpl.main(EmailAgentImpl.java:658)
Et pour être encore plus précis, l'exécution de la requête s'effectue correctement, c'est au moment de récupérer la première ligne de résultat que l'erreur se produit.
En suivant l'approche du bourricot, j'ai ajouté les permissions une à une jusqu'à ce que ça fonctionne. Le plus loin que je suis dans ma démarche, c'est qu'il me faut ajouter la permission suivante:
je n'ai pas réussi à restreindre plus que ça pour l'instant. Si ça allume les lumières de quelqu'un, ce serait gentil de me le dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2java.lang.RuntimePermission "accessClassInPackage.sun.*"
Partager