Tomcat迁移 - 身份验证问题

时间:2012-03-22 16:41:54

标签: java forms-authentication tomcat7

我正在尝试从Tomcat 6迁移到Tomcat 7。

该应用程序使用表单身份验证,当登录应用程序时,将/ j_security_check作为空白页面停留。

Tomcat正在显示用户已通过身份验证且出错。

java.lang.NoSuchMethodError: org.apache.catalina.realm.GenericPrincipal.getRealm()Lorg/apache/catalina/Realm;

不知道从哪里开始。

[编辑]

tomcat服务器上的server.xml文件只是默认值。

应用程序中的context.xml

  <Realm 
    appName="Informer" className="AuthRealm" 
    dbContext="java:comp/env/jdbc/appdb" debug="2" 
    krbFile="C:\\Program Files\\Apache Software Foundation\\Apache Tomcat 7.0.14\\conf\\krb5.conf"
    loginFile="C:\\Program Files\\Apache Software Foundation\\Apache Tomcat 7.0.14\\conf\\jaas.conf"                     
    ndcLdap="ldap://server:389" 
    nedLdap="ldap://server:389" roleClassNames="" 
    useContextClassLoader="true" userClassNames="" />

[[编辑]]

我正在调用getRealm()方法来生成一个新的GenericPrincipal对象。看起来我只需要更新到新的构造函数。

[[[编辑]]]

两个问题。我正在调用getRealm()并且调用是在一个构造函数中,它不再将该域作为参数。

所以我查找了GenericPrincipal的新构造函数,我所要做的就是从参数中删除getRealm()调用。

解决。

此致

1 个答案:

答案 0 :(得分:1)

我在Tomcat文档中没有看到 AuthRealm 类。我想这是一个自定义的Realm,它是针对Tomcat 6编程的,现在API已经改变了。

对象org.apache.catalina.realm.GenericPrincipal已从version 6更改为version 7,现在它没有getRealm()方法。