jdbc在spring security中不起作用

时间:2015-06-05 07:37:24

标签: spring-security spring-jdbc

我正在使用spring security开发一个简单的struts2登录 但是当我使用jdbc加载用户及其相应的角色时,它总是显示我的自定义无效用户页面。没有错误显示,我不知道有什么问题。

我的applicationcontext-security.xml

<global-method-security secured-annotations="enabled" />
<http auto-config="true">

    <intercept-url pattern="/admin.action" access="ROLE_ADMIN" />
    <intercept-url pattern="/user" access="ROLE_USER" />

    <access-denied-handler error-page="/WEB-INF/Content/403.jsp" />

    <form-login login-page="/WEB-INF/Content/login.jsp"
                default-target-url="/admin.action"
                always-use-default-target="true"
                authentication-failure-url="/login.action?error=true"
    />
    <logout logout-url="/login.action?logout=1" />

</http>

<authentication-manager>
    <authentication-provider>
        <jdbc-user-service data-source-ref="dataSource"
                           users-by-username-query="select username,password from users where username=?"

                           authorities-by-username-query="select u.username, ur.authority from users u, user_roles ur where u.username = ur.username and u.username=?"
        />

    </authentication-provider>
</authentication-manager>

我的dataAccessContext.xml是

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

当我直接给用户,密码和权限它工作。我在谷歌搜索了很多,发现了类似的错误,但没有任何作用。我检查了sql查询,它的工作正常。我坚持这个程序。任何帮助将非常感谢。

1 个答案:

答案 0 :(得分:0)

我认为登录查询缺少一个字段已启用

尝试这样的事情:

"select username,password, enabled from users where username=?"