JAAS Realm如何与Tomcat 6一起使用?

时间:2013-09-13 18:49:49

标签: tomcat6 jaas

我一直在尝试阅读此页面: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

0 个答案:

没有答案