我正在尝试恢复一些旧的 java webapps,但丢失了我的旧 glassfish 配置文件,其中定义了我的 JDBCRealm。现在我正在尝试将旧战争部署到 Tomcat 7,并且需要重新创建 JDBCRealm 来验证用户身份。自从我从事这些工作以来已经很长时间了,我不记得该怎么做,我查看了官方文档,但它缺少 oracle 的连接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"/>
我的 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" />