Хорошо, вот как я это сделал (я работаю над JBOSS 4.2.1 GA и Oracle, поэтому некоторые вещи могут отличаться в зависимости от версий и поставщиков БД):
Вам нужнорасширить AbstractPasswordCredentialLoginModule .
Я основал мой (Called PGPLoginModule ) на готовой реализации под названием SecureIdentityLoginModule единственное различие между этим и моим - методы декодирования и кодирования, которые используютдругой алгоритм и процесс шифрования (мой использует сертификат PGP для расшифровки файла свойств, в котором хранится пароль) аналогично тому, как описано в этой статье , но вы можете использовать любой метод, который вы предпочитаете.
Вам потребуется добавить следующие jar-файлы, расположенные в папках библиотеки jboss, чтобы разрешить зависимости:
- [JBOSS_HOME] / lib / jboss-common.jar
- [JBOSS_HOME] / lib / jboss-jmx.jar
- [JBOSS_HOME] / server / default / lib / jbosssx.jar
- [JBOSS_HOME] / server / default / lib / jboss-jca.jar
Вам необходимо создать JAR-класс и поместить кувшин в любое из следующих мест:
- [JBOSS_HOME] / server / default / lib
или
Если у вас есть это, вам нужно настроить его в домене безопасности, который вы определили в jboss login-config.xml, чтобы он использовал ваш класс (у меня это org.company.resource.security.PGPLoginModule ) вместо использования по умолчанию, он будет выглядеть примерно так:
<application-policy name="PGPDomain">
<authentication>
<login-module code="org.company.resource.security.PGPLoginModule" flag="required">
<module-option name="username">[DB_USER]</module-option>
<module-option name="password">[ENCTRYPTED_PASSWORD]</module-option>
<module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=OracleDS</module-option>
</login-module>
</authentication>
</application-policy>
Обратите внимание, что в зависимости от силы и алгоритма, который вы решите использовать, вам может потребоваться установить Неограниченные файлы политик расширения Java Cryptography для вашей JRE.
Надеюсь, кто-то найдет это полезным.