我已经在Tomcat 7上实现了具有领域配置的简单JAAS模块。当在catalina.sh中指定jaas.conf文件时,它可以正常工作,如下所示

JAVA_OPTS=$JAVA_OPTS "-Djava.security.auth.login.config==$CATALINA_BASE/conf/jaas.config"

但是,我想通过在内部向Web应用程序添加此配置文件来简化我的应用程序。文档指出可以使用configFile参数

“与此领域一起使用的JAAS配置文件的名称。将使用ClassLoader#getResource(String)搜索该文件,因此可以将配置捆绑在Web应用程序中。如果未指定,则为默认的JVM全局JAAS配置。”

我的Web应用程序中的context.xml:
<Realm appName="AppLogin" className="org.apache.catalina.realm.JAASRealm" configFile="WEB-INF/jaas.config" ...../>

配置文件位于/WEB-INF/jaas.config

为什么我的Jaas配置文件没有被加载?

http://tomcat.apache.org/tomcat-7.0-doc/config/realm.html#JAAS_Realm_-_org.apache.catalina.realm.JAASRealm

最佳答案

将使用ClassLoader#getResource(String)搜索它

然后,您需要将JAAS配置文件放在类路径中:WEB-INF/classesWEB-INF/lib,而不是WEB-INF

并仅指定文档中所写的文件名:

configFile-与此配合使用的JAAS配置文件的名称
领域。

10-08 19:43