带有 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/PASSWORD

OPERATOR_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