En bref, comment puis-je restreindre l'accès au pool de connexions X en fonction du nom de l'application ou du nom JAR? Un cas d'utilisation simple peut aider ...Restreindre l'accès au pool de connexions dans Weblogic?
Une application Web métier (appelez-la WEB_APP_A) utilise le pool Y pour effectuer une recherche de base SQL. Certains utilisateurs de cette application Web ont également accès à la mise à jour de certaines données sensibles dans la base de données. Ce code est fourni par un fichier JAR (appelez-le HR_JAR) qui peut être déposé si nécessaire. Ce fichier JAR utilise le pool X pour toutes ses connexions. Nous ne voulons pas que les développeurs de WEB_APP_A utilisent le pool X. Nous voulons seulement utiliser HR_JAR en utilisant le pool X. Ceci empêche les développeurs de WEB_APP_A d'abuser accidentellement ou intentionnellement du pool d'accès fourni par X.
Quelques considérations:
- C'est le code existant si HR_JAR est là pour rester
- Nous courons sur Weblogic 9.2
- Nous ne pouvons pas garder les mots de passe dans un de dans le code source
- Nous avons recherché authn/authz au niveau de l'utilisateur de weblogic pour des ressources de JDBC mais alors ceci soulève la question; Comment sécuriser les utilisateurs que nous utilisons pour devenir un utilisateur par app/jar?
Idées? Pensées? Je peux en dire plus sur ce que j'ai essayé, mais je voulais de nouvelles idées.
HR JAR est livré avec WEB_APP_A. Dans JBoss, la réponse semble triviale (voir http://www.jboss.org/file-access/default/members/jbossweb/freezone/docs/latest/security-manager-howto.html section "JBoss Web Custom Permissions"). Je n'arrive pas à trouver l'équivalent dans Weblogic. –
@Andrew Je ne suis pas sûr de comprendre comment ce truc JBoss résoudrait votre problème. –
Eh bien, dans JBoss je pourrais faire ce qui suit, non? don codeBase "fichier: $ {catalina.home} /webapps/WEB_APP_A/WEB-INF/lib/HR.jar!/-" { org.apache.naming.JndiPermission "jndi: // localhost/poolX }; –