6

在 Jetty 的主项目页面上提到了与 JASPI (JASPIC/JSR 196) 的兼容性。

但是,Jetty 8 的发行版似乎不包含任何与 JASPI 相关的类。[jetty home]/lib 中有一个jetty-security-8.1.8.v20121106.jarjar,但是这个不包含任何 JASPIC/JASPI 类型。

Jetty wiki 上关于 JASPIC/JASPI的文档只是一个占位符,不包含任何信息。

经过一番谷歌搜索后,我在 Eclipse 站点上找到了 JavaDocs,并发现某处应该有一个 jetty-jaspi-8.1.8.v20121106.jar 。这些 JavaDocs 也包含在发行版中。最后,Github 上出现了一个jetty-jaspi 存储库

显然有一些可用的支持,但为什么这些类似乎不存在于 Jetty 发行版中,关于如何配置它的文档在哪里?我错过了什么?

4

1 回答 1

8

这个项目 (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 类加载)。

于 2013-01-11T10:03:19.967 回答