我正在使用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查询,它的工作正常。我坚持这个程序。任何帮助将非常感谢。
答案 0 :(得分:0)
我认为登录查询缺少一个字段已启用
尝试这样的事情:
"select username,password, enabled from users where username=?"