This project (https://github.com/guofengzh/jaspi-on-jetty)是Jetty中的JASPI API的一個工作示例,該示例使用geronimo-jaspi,後者又調用回jetty-jaspi模塊進行身份驗證。在這個例子中,Geronimo似乎提供了配置機制和jetty認證模塊本身。
看起來好像您可以選擇表單,摘要或基本身份驗證方法。對基於表單的登錄進行快速測試表明它似乎起作用。
的Jaspi認證工廠是設置在碼頭-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庫作爲pom中的依賴項加上geronimo jaspi實現:
<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模塊不是standard start options之一,但可以添加到$ {jetty.home/lib/ext}目錄(請參閱Jetty classloading)。
看起來像一個很好的答案:)我仍然有點在黑暗中爲什麼jaspi javadocs在分佈,但不是實際的代碼。需要兩個外部庫也使得在主頁上支持jaspi的聲明有問題。同樣,Tomcat可以聲稱是JSF兼容的:|但是,唉,我會嘗試你的例子;) –
我非常喜歡碼頭的模塊化特性,你可以只啓用你需要的功能,並有一個輕量級的運行時間。儘管如此,我對javadocs + external lib的觀點仍然持懷疑態度。從文檔中不清楚jetty是如何支持這個功能的。 – diffa
是的,它已經在碼頭支持了很多年了,但是我個人聽到的很少,關於我在啓用方面沒有多少考慮,它主要是來自geronimo的另一個提交者(David Jencks)的工作。我們需要將其納入新的docbook文檔,但願意在文檔中看到拉取請求! –