需要使用oracle数据库为tomcat webapp配置旧的JDBCRealm

时间:2012-05-14 05:01:52

标签: forms oracle tomcat glassfish jdbcrealm

我正在尝试恢复一些旧的java webapps,但丢失了我的旧glassfish配置文件,其中定义了我的JDBCRealm。现在我正在尝试将旧战争部署到Tomcat 7,并且需要重新创建JDBCRealm以对用户进行身份验证。自从我处理这些东西已经很久了,我不记得怎么做了,我看了一个正式的文档,但它缺少一个用于oracle的connectionURL。我认为我的数据库与之前的用户和角色表一样。

我是否可以重用Tomcat 7上运行于glassfish 3上的旧战争?它包含一个sun-web.xml文件。这只是为了玻璃鱼吗?

我正在使用form auth方法 - 这是我的web.xml的片段:

 <login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbc/myapp/realm</realm-name>
<form-login-config>
  <form-login-page>/loginPage.jsp</form-login-page>
  <form-error-page>/loginError.jsp</form-error-page>
</form-login-config>

这是来自server.xml文件的我的领域片段:

  <Realm className="org.apache.catalina.realm.LockOutRealm">

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
      resourceName="UserDatabase"/>

  </Realm>


  <Realm className="org.apache.catalina.realm.JDBCRealm" 
driverName="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@localhost:1521:XE"
   userTable="users"userNameCol="username" 
userCredCol="wpassword"userRoleTable="roles"roleNameCol="rolename"/>

我的connectionURL看起来是否合适?还有什么可能是错的?现在,当我尝试登录时,它永远不会接受我的密码。我总是得到我的登录错误页面(不是完整的应用程序崩溃)。

最新版本:

<Realm className="org.apache.catalina.realm.JDBCRealm"
       driverName="oracle.jdbc.OracleDriver"
       connectionURL="jdbc:oracle:thin:@localhost:1521:XE"
       connectionName="uname"
       connectionPassword="pword_33"
       userTable="USERS"
       userNameCol="USERNAME"
       userCredCol="WPASSWORD"
       userRoleTable="ROLES"
       roleNameCol="ROLENAME" />

1 个答案:

答案 0 :(得分:1)

假设数据库sid是XE,连接URL看起来没问题。您似乎缺少connectionName和connectionPassword属性。 <{3}}中以粗体列出的任何属性都是必需的。