如何解决如何使用 jetty-maven-plugin 10 指定 JAAS 配置文件
我正在尝试在开发环境中使用 jetty-maven-plugin
。但是,我正在努力让 JAAS 正确获取登录模块配置文件。
以下摘自我的 pom.xml
(我留下了评论部分以显示我尝试过的变体):
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>10.0.2</version>
<configuration>
<webApp>
<contextpath>/${project.build.finalName}</contextpath>
</webApp>
<contextxml>${project.basedir}/jetty-context.xml</contextxml>
<stopKey>CTRL+C</stopKey>
<stopPort>8999</stopPort>
<scanIntervalSeconds>10</scanIntervalSeconds>
<scanTargets>
<scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget>
</scanTargets>
<!-- <systemProperties>
<systemProperty>
<name>jetty.jaas.login.conf</name>
<value>${project.basedir}/jaas.conf</value>
</systemProperty>
<systemProperty>
<name>java.security.auth.login.config</name>
<value>${project.basedir}/jaas.conf</value>
</systemProperty>
</systemProperties> -->
<jettyProperties>
<jettyProperty>
<name>jetty.jaas.login.conf</name>
<value>${project.basedir}/jaas.conf</value>
</jettyProperty>
</jettyProperties>
</configuration>
但是,当使用 mvn jetty:run
运行时,它不会尝试加载 jaas.conf
文件。我已经使用 strace
确认了这一点:
$ strace -f mvn jetty:run 2>&1 | grep -i '\.conf'
...snip...
[pid 24242] openat(AT_FDCWD,"/etc/host.conf",O_RDONLY|O_CLOEXEC) = 165
[pid 24242] openat(AT_FDCWD,"/etc/resolv.conf",O_RDONLY|O_CLOEXEC) = 165
[pid 24270] stat("/home/myuser/.java.login.config",<unfinished ...>
当未设置 ~/.java.login.config
系统属性时,它尝试读取 java.security.auth.login.config
文件的最后一行是 ConfigFile 中记录的标准行为。
mvn jetty:run -Djava.security.auth.login.config=jaas.conf
正确的配置方法是什么?
解决方法
如果它对任何人有用,解决这个问题的方法是 systemProperties
应该被指定如下:
<systemProperties>
<java.security.auth.login.config>${project.basedir}/jaas.conf</java.security.auth.login.config>
</systemProperties>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。