这个项目 (https://github.com/guofengzh/jaspi-on-jetty)是 jetty 中 JASPI API 的一个工作示例,它使用geronimo-jaspi反过来调用 jetty-jaspi 模块进行身份验证。Geronimo 似乎在此示例中提供了配置机制并为身份验证模块本身提供了码头。
似乎您可以选择表单、摘要或基本身份验证方法。对基于表单的登录的快速测试表明它似乎可以正常工作。
Jaspi 身份验证工厂在 jetty-web.xml 中设置,如下所示:
<Set name="securityHandler">
<New class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
<Set name="name">JAASRealm</Set>
<Set name="loginModuleName">jaas</Set>
</New>
</Set>
<Set name="authenticatorFactory">
<New class="org.eclipse.jetty.security.jaspi.JaspiAuthenticatorFactory" />
</Set>
</New>
</Set>
jaspi 配置文件是通过 pom.xml 文件中的系统属性引用的:
<systemProperty>
<name>org.apache.geronimo.jaspic.configurationFile</name>
<value>./conf/jaspi/form-test-jaspi-2.xml</value>
</systemProperty>
此外,您提到的 jaspi 库与 geronimo jaspi 实现一起作为依赖项添加到 pom 中:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jaspi</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.components</groupId>
<artifactId>geronimo-jaspi</artifactId>
<version>2.0.0</version>
</dependency>
我也一直无法找到有关该主题的文档。似乎 jetty-jaspi 模块不是标准启动选项之一,但可以添加到 ${jetty.home/lib/ext} 目录(请参阅Jetty 类加载)。