Java 只有一个用户可以访问spring security

Java 只有一个用户可以访问spring security,java,mysql,spring-mvc,spring-security,Java,Mysql,Spring Mvc,Spring Security,这是我的问题——我对授权用户使用Spring安全性,但我只能登录到一个用户(测试)。我正在创建的其他用户(通过网站或在db中手动创建)不工作。db是MySQL,spring security 3.2.6.0版本 security-context.xml: <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/sch

这是我的问题——我对授权用户使用Spring安全性,但我只能登录到一个用户(测试)。我正在创建的其他用户(通过网站或在db中手动创建)不工作。db是MySQL,spring security 3.2.6.0版本

security-context.xml:

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd


http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.2.xsd">

    <http auto-config="true" use-expressions="true">
    <form-login login-page="/"
        default-target-url="/"
        authentication-failure-url="/error"
        username-parameter="username"
        password-parameter="password" />
    <logout logout-success-url="/" delete-cookies="JSESSIONID" invalidate-session="true" /> <!-- określamy przekierowanie po wylogowaniu -->
    <!-- <csrf />   włączamy zabezpieczenie przed csrf -->
    <intercept-url pattern="/addnew" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')" />
    </http>

    <authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource" 
                users-by-username-query="SELECT login, pass, mail FROM user WHERE login =?"
                authorities-by-username-query="SELECT login, role FROM roles WHERE login =?" />
        </authentication-provider>
    </authentication-manager>


    <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <beans:property name="url" value="jdbc:mysql://localhost:3306/usersdb" />
        <beans:property name="username" value="root" />
        <beans:property name="password" value="1234" />
    </beans:bean>

</beans:beans>

编辑:用户名权限查询可能看起来有点混乱,但我对3>2索引有问题(如果我没记错的话——如果你知道正确的查询应该是什么样子的话——请毫不犹豫地指出)。

确保每个用户至少有一个角色。如果用户没有角色,Spring Security将拒绝登录。

答案不起作用,但我认为指向正确的方向-我忘记了“启用”字段。在将它添加到db中并在用户类中映射之后,它仍然不起作用(令人惊讶),但问题可能是,我正在使用hibernate在这个项目中处理另一个db。我将使用将我的项目更改为完全休眠,这应该可以解决问题。

我确定他们有角色,这里是db.user screen:db.roles:role表的内容是什么?如果日志文件中有错误消息,还可以发布错误消息。我用role表更新了,没有错误。它将我指向/error页面,就像我尝试使用随机用户名和密码登录一样。我重新启动了db和tomcat两次。最后-我不知道使用JDBC有什么问题,但是使用Hibernate连接到用户db,一切都很好。嗨,我和你一样有一个问题。但我用的是Spring Boot,这里是我的问题链接。你能帮助我吗?
<c:set var="sign">
    <c:url value="/j_spring_security_check" />
</c:set>
                        <form class="navbar-form navbar right" action="${sign}" method="POST">
                            <div class="form-group">
                                <input type="text" class="form-control" name="username"
                                    placeholder="Username">
                            </div>
                            <div class="form-group">
                                <input type="password" class="form-control" name="password" placeholder="Password">
                            </div>
                            <button type="submit" class="btn btn-default" name="action">Sign In</button>
                        </form>
package com.codedig.app;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity //deklaruje, ze mamy do czynienia z encja
public class User {
    //niezalenize czy istnieja gettery/settery (akcesory) wszystkie wlasnosci obiektu sa zapisywane do bd

    @Id //deklaruje klucz wg. którego rozrozniamy encje
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name = "id")
    private int id;
    @Column(name = "login")
    private String login;
    @Column(name = "pass")
    private String pass;
    @Column(name = "mail")
    private String mail;    

    public User() {
        super();
    }

    public User(int id, String login, String pass, String mail) {
        super();
        this.id = id;
        this.login = login;
        this.pass = pass;
        this.mail = mail;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

}