我按照以下方式设置了Jetty安全领域(用于与mvn jetty:run
一起使用)。
这个可以工作:
pom.xml
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<webAppXml>src/test/resources/jetty-test.xml</webAppXml>
<useTestScope>true</useTestScope>
</configuration>
</plugin>
jetty-test.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">MySecurityRealm</Set>
<Set name="config">src/test/resources/jetty-realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
然后我尝试消除对jetty-test.xml
文件的需求,方法如下:
pom.xml
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<!-- <webAppXml>src/test/resources/jetty-test.xml</webAppXml> -->
<useTestScope>true</useTestScope>
<loginServices>
<loginService implementation="org.eclipse.jetty.security.HashLoginService">
<name>MySecurityRealm</name>
<config>${basedir}/src/test/resources/jetty-realm.properties</config>
</loginService>
</loginServices>
</configuration>
</plugin>
但它失败了,显示如下:
2013-03-26 16:33:26.197:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.security.ConstraintSecurityHandler@73937bc8: java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@3d47dde in org.eclipse.jetty.security.ConstraintSecurityHandler@73937bc8
有什么想法吗?
我正在使用这份文档:http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#配置安全设置