java - 使用 Spring Security 3.2.x 进行两页登录

标签 java spring security spring-mvc spring-security

我们对 Java、Spring 和 Spring Security 是全新的,但对开发并不陌生。我们已经能够创建一个基于 Spring Security 的 Thymeleaf 登录页面,该页面使用 JNDI 数据源通过 BCrypt 加密密码连接到我们的 SQL Server 数据库。所有这些都在顺利进行。但是,客户端需要两阶段登录。第一页请求公司 ID,然后加载带有该公司特定图形和文本的登录页面,让用户知道他们没有登录钓鱼网站。该登录页面随后会请求用户名和密码。

我们已在此处和整个网络上进行了广泛搜索,但尚未找到执行此操作的可靠方法。我们认为我们可能必须创建一个自定义的 UserDetailsS​​erviceAuthenticationManager,但仍然看不到如何实现它,以便:

  1. 用户不能绕过第一个登录屏幕直接进入第二个屏幕
  2. SpringSecurity 控制着这两个页面

我们看到了一个关于将 Spring WebFlow 与 Spring Security 一起使用的建议,但没有一些起点,不知道 WebFlow 如何工作或适用于这种情况。这个网站对我们到达这个阶段帮助很大,但现在我们受阻了。非常感谢您提供的任何帮助。

最佳答案

我猜你的数据库将所有公司的所有用户存储在一张表中。您不会将来自不同公司的用户分隔到不同的表中。如果是这种情况,您只需要一个登录页面。事情是,你有一个用户输入他的公司 ID 的第一页,你使用这个 ID 来获取 JPG 和 Logo 并将它们放在登录页面上。

请注意,这没有任何安全利益。因为任何人都可以输入其他公司的 ID 并获得不同公司的 Logo ,但仍可以尝试登录。这是您的要求吗?

问题是您的登录页面需要根据之前输入公司 ID 的页面显示 Logo 和 JPG。如果没有给出,则显示错误。所以你的登录页面需要有一些逻辑和输入——如果你把它做成一个 JSP 就很容易实现....

HTH

关于java - 使用 Spring Security 3.2.x 进行两页登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863785/

相关文章:

java - 为报告设置数字格式模式以保留小数点后的所有数字

spring - jBPM 与 Spring 和 Hibernate 集成的示例项目

javascript - 是否可以仅使用公钥修改公共(public)谷歌日历中的事件数据?

asp.net - 保护 ASP.NET Web 目录中的文件夹

java - 如何表示遗传算法中时间表问题的时间表?

java - 如何将 DateTimeFormatter 包含到项目中

java - 在本地网站 (HTML) 上打开我的 Java 应用程序

Java Spring Blaze DS - ANTLR 异常

java - 用 jruby 编写的 spring 框架 bean 中的 Ruby gems

android - android中的debug.keystore有什么用?