java - 开发模式的Spring Security预认证

标签 java spring spring-security

在开发应用程序时,能够以具有不同角色的不同用户身份快速登录以查看应用程序如何呈现自身是非常有用的。

输入用户名和密码既无趣又浪费时间。我想做的是:

  • 添加一个包含可用用户名列表的页面/面板;
  • 点击用户名将为 Spring 安全生成一个事件,允许它识别用户已通过身份验证,而无需输入密码;
  • 点击链接后,我被认证为指定用户。

注意:密码经过哈希处理并使用表单以纯文本形式提交,因此无法在链接中对密码进行编码。

显然此功能只会在开发时出现。

我怎样才能做到这一点?

最佳答案

使用 InMemoryDaoImpl 作为开发模式。创建存储在内存中的用户和密码非常容易:

<bean id="userDetailsService" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
  <property name="userMap">
    <value>
      admin=admin,ROLE_ADMIN,ROLE_USER
      user1=user1,ROLE_USER
      user2=user2,ROLE_USER
    </value>
  </property>
</bean>

在开发模式下将其注入(inject)您的身份验证提供程序。在生产中用适当的数据库或 LDAP 实现替换它。

关于java - 开发模式的Spring Security预认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067869/

相关文章:

spring - Spring EL hasRole 方法背后是哪个 Spring Java 类?

spring-security - 是否有一种技术可以延迟 session 创建,直到用户成功登录?

java - 使用spring加密敏感信息

java - 列出特定深度的文件

java - 如何在 android studio 上打开下载的整个项目,包括所有部分(src、res、assets、bin、gen、libs、res、settings、manifest)?

java - Spring Boot 和 AngularJS

java - 未找到映射(资源)

java - 如何编写 JUnit 测试来比较 2 个对象列表的相等性?

java - 为什么我不能在 clojure 中绑定(bind) defrecord?

java - 带有 $in 和正则表达式列表的 Spring Data MongoDB 标准