(Spring)使用DB表执行授权

时间:2017-11-27 10:57:29

标签: mysql spring authentication

哟,我正在学习春天。 在这一新剧集中,我想用DB登录。

所以我在MySqlWorkbench中创建了名为“demodb”的SQL模式,在这个模式中我有一个包含3列的表(Username,Pass,Auth)

问题: 当我运行我的应用程序并且登录表单出现时,即使我输入了正确的用户名和密码,Auth列设置为“ROLE_USER”,我也无法继续。

3次尝试后得到错误401。

这是我的SecConfig.xml

<sec:http auto-config="true">
    <sec:intercept-url pattern="/**" access="ROLE_USER"/>
    <sec:http-basic/>
</sec:http>

<sec:authentication-manager>
   <sec:authentication-provider user-service-ref="myUserDeatilsService"/>
</sec:authentication-manager>
<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/demodb?useSSL=false" />
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>
<bean id="myUserDeatilsService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
    <property name="dataSource" ref="dataSource"></property>
</bean>

信息:加载了SQLErrorCodes:[DB2,Derby,H2,HSQL,Informix,MS-SQL,MySQL,Oracle,PostgreSQL,Sybase,Ha

1 个答案:

答案 0 :(得分:0)

对于Spring Security,您应该为Users和User Roles表定义查询。

请参阅spring security docs for examle:spring security doc

另见Mkyong的精彩指南:Spring Security form login using database