Java 如何在码头上使用JASPI/JASPIC?

Java 如何在码头上使用JASPI/JASPIC?,java,jakarta-ee,jetty,jetty-8,jaspic,Java,Jakarta Ee,Jetty,Jetty 8,Jaspic,提到了码头与JASPI(JASPIC/JSR 196)的兼容性 但是,似乎不包含任何与JASPI相关的类。[jetty home]/lib中有一个jetty-security-8.1.8.v201106.jarjar,但这个不包含任何JASPIC/JASPI类型 Jetty wiki上的仅为占位符,不包含任何信息 通过谷歌搜索,我发现应该有一个。这些javadoc也包含在发行版中。最后,Github上出现了一个 显然有一些可用的支持,但是为什么这些类似乎不在Jetty发行版中,关于如何配置这些类

提到了码头与JASPI(JASPIC/JSR 196)的兼容性

但是,似乎不包含任何与JASPI相关的类。[jetty home]/lib中有一个
jetty-security-8.1.8.v201106.jar
jar,但这个不包含任何JASPIC/JASPI类型

Jetty wiki上的仅为占位符,不包含任何信息

通过谷歌搜索,我发现应该有一个。这些javadoc也包含在发行版中。最后,Github上出现了一个

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

是jetty中JASPI API的一个工作示例,它使用JASPI API反过来调用jetty JASPI模块进行身份验证。在本例中,Geronimo似乎提供了配置机制和jetty身份验证模块本身

似乎您可以选择表单、摘要或基本身份验证方法。对基于表单的登录的快速测试表明,它似乎可以正常工作

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>

JAASRealm
jaas
jaspi配置文件通过pom.xml文件中的系统属性引用:

<systemProperty>
  <name>org.apache.geronimo.jaspic.configurationFile</name>
  <value>./conf/jaspi/form-test-jaspi-2.xml</value>
</systemProperty>

org.apache.geronimo.jaspic.configurationFile
./conf/jaspi/form-test-jaspi-2.xml
此外,您提到的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>

org.eclipse.jetty

,但可以添加到${jetty.home/lib/ext}目录中(请参阅)。

看起来是一个很好的答案:)我仍然不清楚为什么jaspi javadocs会出现在发行版中,而不是实际的代码中。需要两个外部LIB也使得在主页上支持jaspi的说法受到质疑。出于同样的原因,Tomcat可以声称与JSF兼容:|但是,唉,我会试试你的例子;)我非常喜欢jetty的模块化特性,您可以只启用所需的功能,并拥有轻量级运行时。不过,我接受您关于javadocs+外部库的观点;从文档中还不清楚jetty是如何支持此功能的。是的,jetty支持此功能已有多年了,但我个人很少听说,在启用方面我没有考虑太多,这主要是geronimo的另一个提交者(David Jencks)的工作。我们需要把它放到新的docbook文档中,但是我们希望在文档中看到它的拉取请求!