我设置了一个码头安全领域,如下(用于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>
码头-的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>
的pom.xml
那么我尝试删除对jetty-test.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#Configuring_Security_Settings
解决方法
请验证子元素< name> MySecurityRealm< / name> for< loginServices>您的jetty-maven-plugin配置与< realm-name> MySecurityRealm< / realm-name>相同.对于< login-config>在你的web.xml中.