我試圖創建一個自定義的JASPI ServerAuthModule,它完全與我的EAR應用程序隔離。它取決於Spring框架2.5.5的傳統版本。我正在運行WildFly 9.0.2.Final。從應用程序中分離出來的WildFly9 JASPI模塊
我定義一個適當的安全域:
<security-domain="sample">
<authentication-jaspi>
<login-module-stack name="...">
<login-module code="..." flag="...">
<module-option name="..." value="..."/>
</login-module>
</login-module-stack>
<auth-module code="..." login-module-stack-ref="...">
<module-option name="..." value="..."/>
</auth-module>
</authentication-jaspi>
</security-domain>
再定義一個定製的JBoss模塊爲我的驗證模塊間的依賴性。
$WILDFLY/modules/com/my/module/main/module.xml
$WILDFLY/modules/com/my/module/main/spring-core-2.5.5.jar
$WILDFLY/modules/com/my/module/main/etc.jar (..)
然後我迷上了我的模塊作爲picket box依賴。
cat $WILDFLY/system/layers/base/modules/org/picketbox/main/module.xml
<module xmlnx="..." name="org.picketbox">
...
<dependency>
...
<module name="org.my.module" />
</dependency>
</module>
當我嘗試部署一個共同的my-app.ear
附帶my-app.war
與jboss-web.xml
指向「樣本」安全域,它成功地找到我想要的班,開始JASPI生命週期,但隨後開始創建Spring上下文時和Spring Beans,它落在my-app.ear.my-app.war
模塊類加載器上,並且如預期的那樣找不到類。
ClassNotFoundException的:從com.my.module.ClassX [模塊 「deployment.my-app.ear.my-app.war:主」 從服務模塊加載]
我不想要在jboss-deployment-structure.xml
中添加com.my.module
作爲依賴項。這樣做可以使應用程序按需要工作。雖然我需要它孤立。
我的問題是:
- 是否有可能在JASPI模塊類從我的應用程序隔離?
- 這種方法(掛鉤爲
org.picketbox
依賴)推薦? - 是Spring Framework 2.5.5的限制嗎?也許它使用的不是當前線程類加載器的類加載器。
在此先感謝。
如果這解決了你的問題,你應該檢查你的問題旁邊的✔。 –