我希望有人可以帮助我。我尝试通过JDBCRealm配置身份验证。这是第一次这样做。
以下是我的表格:
*Table userprincipal*
email : varchar
password : varchar
*Table role*
email : varchar
role : varchar
我使用的是Tomcat 7 Server。所以我从
更改了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
答案 0 :(得分:0)
看起来问题是Tomcat安装。我是通过Eclipse安装的。现在我手动安装并部署了我项目的war文件。它有效。