【发布时间】:2014-12-10 16:14:16
【问题描述】:
我希望有人可以帮助我。我尝试通过 JDBCRealm 配置身份验证。这是第一次这样做。
这是我的表格:
*Table userprincipal*
email : varchar
password : varchar
*Table role*
email : varchar
role : varchar
我使用的是 Tomcat 7 服务器。所以我改变了 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="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/myData"
connectionName="user"
connectionPassword="pwd"
userTable="userprincipal"
userNameCol="EMAIL"
userCredCol="password"
userRoleTable="userprincipal_role"
roleNameCol="role" />
我在 web.xml 中添加了以下几行
<security-constraint>
<web-resource-collection>
<web-resource-name>Default</web-resource-name>
<url-pattern>/services/customer/*</url-pattern>
<url-pattern>/services/material/loadAllByQuery</url-pattern>
<url-pattern>/services/SalesOrder/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
当我启动应用程序并调用一个只有管理员和用户可以访问的 URL 时,我会从浏览器获得登录弹出窗口。但是,如果我使用正确的用户数据登录,弹出窗口会再次出现。没有登录的其他页面工作正常。
控制台中没有显示异常、警告和其他错误。
我怎样才能找出问题所在?
SDK 是 Java 1.7
Tomcat 版本是 7.0
【问题讨论】: