JDBCRealm不起作用,但没有错误消息

时间:2014-10-15 14:26:18

标签: java mysql jdbcrealm

我希望有人可以帮助我。我尝试通过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

1 个答案:

答案 0 :(得分:0)

看起来问题是Tomcat安装。我是通过Eclipse安装的。现在我手动安装并部署了我项目的war文件。它有效。

相关问题