我一直在尝试阅读此页面:http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#JAASRealm,看来我已经完成了所要求的所有内容,但身份验证仍然无效。所以我希望有人可以帮助我!
我试图将Tomcat 6服务器及其webapps部署从32位Linux生产服务器复制到64位Ubuntu开发服务器。除了在开发版本的server.xml文件中没有配置SSL端口之外,我保留了大多数设置。当然,Tomcat和JDK现在都使用64位版本而不是之前的32位版本。
所以我的问题出现了:
在原始生产站点上,我能够访问SOAP服务URL,例如https://production.server.com:8080/soap/services
,它会显示一个浏览器的身份验证窗口,并询问用户名和密码,当然我可以使用我的凭据登录生产。
但是,在我设置的开发站点上,我也能够访问此URL:http://localhost:8080/soap/services/
,它还会显示浏览器身份验证窗口。不同之处在于我无法登录。
我查看了Tomcat日志,Catalina日志和我的应用程序日志,根本没有显示任何错误。所以我感到茫然,不知道现在发生了什么。
有关详细信息,请参阅dev ubuntu服务器上Tomcat6目录下的设置:
vim ./conf/server.xml
...
<Realm className="org.apache.catalina.realm.JAASRealm" appName="MyApi"
userClassNames="com.company.auth.UserPrincipal"
roleClassNames="com.company.auth.RolePrincipal"/>
...
vim ./conf/auth.conf
MyApi {
com.company.auth.MyLoginModule required;
};
vim ./bin/catalina.sh
...
JAVA_OPTS="$JAVA_OPTS -DJava.security.auth.login.config=$TOMCAT_HOME/conf/auth.conf"
CLASSPATH=$CLASSPATH:$TOMCAT_HOME/lib/auth.jar
...
jar tf ./lib/auth.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/company/
com/company/auth/
com/company/auth/UserPrincipal.class
com/company/auth/RolePrincipal.class
vim ./webapps/ROOT/WEB-INF/classes/server-config.wsdd
...
<service name="MyApp" provider="java:RPC">
<parameter name="className" value="com.company.soap.MyApi"/>
<parameter name="allowedMethods" value="*"/>
</service>
...
ls ./webapps/ROOT/WEB-INF/classes/com/company/soap/ | grep MyApi
./webapps/ROOT/WEB-INF/classes/com/company/soap/MyApi.class
ps aux | grep tomcat
root 24665 1.2 0.0 4260632 263340 ? Sl Sep12 9:13 /usr/bin/java
-Xms128M -Xmx768M -Xverify:none -Djava.security.manager
-Djava.security.policy=/usr/local/tomcat/conf/catalina.policy
-DJava.security.auth.login.config=/usr/local/tomcat/conf/auth.conf
-Dlog4j.configuration=file:/usr/local/tomcat/conf/log4j.properties
-classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat
-Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp
org.apache.catalina.startup.Bootstrap start