带有 jdbc 的 Spring Security 3.0
Posted
技术标签:
【中文标题】带有 jdbc 的 Spring Security 3.0【英文标题】:Spring Security 3.0 with jdbc 【发布时间】:2011-03-27 17:03:28 【问题描述】:我读过《Spring Security 3 database authentication with Hibernate》!但我不知道我应该如何将它实现到我的项目中!
我必须在哪个文档中设置数据库的密码/用户名/驱动程序/url? 我有不同的列标题,例如 OPERATOR_ID/USR_ID/PASSWORDOPERATOR_ID 应该是登录名,USR_ID 应该是角色和登录密码
拜托,也许您可以发布一个实现我的问题的示例?也许是为了结帐或 *.war 文件?
【问题讨论】:
[这里有一个很好的帖子来解决这个问题][1] [1]:***.com/questions/20068593/… 【参考方案1】:我认为没有任何配置可以做到这一点。您必须实现UserDetailsService
,它只有一种方法loadUserByUsername
来加载用户,并且您必须实现相同的方法才能使用hibernate 从数据库中加载用户信息。
见here
【讨论】:
【参考方案2】:您需要配置一个JDBCDaoImpl bean,它将数据源作为参数。如何检索数据源取决于您,您可以从应用服务器获取它或使用 Spring 的 DriverManagerDatasource 之类的东西 这是一些(伪)配置
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>your.driver.classname</value></property>
<property name="url"><value>yourDatabaseUrl</value></property>
<property name="username"><value>yourUsername</value></property>
<property name="password"><value>yourPassword</value></property>
</bean>
<bean id="dao" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
<property name="DataSource" ref="datasource" />
...
</bean>
【讨论】:
以上是关于带有 jdbc 的 Spring Security 3.0的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security JDBC 和 Hibernate JPA
Spring-Security:MySQL JDBC 身份验证失败
Spring Security 使用 JDBC 会话在多个 Web 应用程序之间共享相同的会话
Spring-Security-Oauth2 基于JDBC存储令牌和RBAC权限认证
如何在 Spring Security 中通过 jdbc 身份验证使用自定义登录页面
How to use JDBC-Authentication of Spring Boot/Spring Security with Flyway