2

いくつかの古い Java Web アプリケーションを復活させようとしていますが、JDBCRealm が定義されている古い Glassfish 構成ファイルを失いました。現在、古い戦争を Tomcat 7 にデプロイしようとしており、ユーザーを認証するために JDBCRealm を再作成する必要があります。この作業に取り組んでから長い時間が経ちましたが、その方法を思い出せません。公式ドキュメントを調べましたが、オラクルの接続 URL がありません。私のデータベースは、ユーザーとロールのテーブルを使用して以前と同じように設定されていると思います。

Tomcat 7 の GlassFish 3 で実行された古い戦争を再利用することはできますか? これには、sun-web.xml ファイルが含まれています。それはグラスフィッシュだけですか?

私はフォーム認証方法を使用しています - ここに私の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"/>

私の接続URLは正しいですか? 他に何が間違っている可能性がありますか?現在、ログインしようとすると、パスワードが受け入れられません。ログインエラーページが常に表示されます(アプリの完全なクラッシュではありません)。

最新のレルム バージョン:

<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" />
4

1 に答える 1

1

データベース SID が XE であると仮定すると、接続 URL は問題ないように見えます。connectionName および connectionPassword 属性が欠落しているようです。ドキュメントで太字でリストされている属性はすべて必須です。

于 2012-05-14T14:25:21.790 に答える