java - JAAS Realm 加载内部配置文件

标签 java tomcat jaas

我已经在 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 配置。”

我的网络应用程序中的 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

最佳答案

It will be searched for using ClassLoader#getResource(String)

那么你需要将JAAS配置文件放在类路径中:WEB-INF/classesWEB-INF/lib但不是WEB-INF直接。

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

configFile - The name of a JAAS configuration file to use with this Realm.

关于java - JAAS Realm 加载内部配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427161/

相关文章:

java - 什么是 Java 中的 process_reaper 线程?

security - 具有多个 JAAS 安全领域的 Java 应用程序

Java基础应用架构

database - 将 Tomcat 参数传递给 Docker

linux - 脚本会在超过物理内存的95%时自动重启Tomcat

tomcat - 如何使用匿名 diffie-hellman 算法为服务器生成证书或 keystore

javax.security.auth.login.LoginException : No LoginModules configured for SomeLogin

java - 无法配置 JAAS 身份验证

java - EntityManager 刷新

java - 如何阻止 Eclipse 在数组实例化及其值之间创建新行(Ctrl + Shift + F)?