Jasig CAS:页面在第 5 次尝试登录时重新加载

Jasig CAS: page reloads on 5th attempt to login

有CAS+LDAP授权系统

我的登录页面在第 5 次错误登录尝试时重新加载。例如,如果我尝试使用错误的密码登录 1 到 4 次,只有 password 字段被清除。第 5 次尝试页面重新加载(即使密码正确)并且 usernamepassword 字段都被清除。

而且此时CAS和LDAP都没有日志输出。

我花了两周时间寻找解决方案,但没有找到。

感谢提前。

P.S。对不起我的英语:)

------------编辑---------

Ioannis Baourdos' 回答之后:

  1. 我的自定义 casLoginView.jsp

    [= name="execution"value="${flowExecutionKey}" 的隐藏字段
  2. 72=]

  3. 我也检查了第 5 次尝试登录。如果我手动重新加载页面,我会在这里看到相同的输出。

  4. 在我的网络浏览器中,我反复检查了 name="execution" 值。这里的值:

操作 -> 值

1) 打开页面 -> e1s1

2) 第一次错误尝试 -> e1s2

3) 第二次错误尝试 -> e1s3

4) 第三次错误尝试 -> e1s4

5) 第 4 次错误尝试 -> e1s5

6) 下一次正确或错误的尝试(提交后页面重新加载)-> e7s1

逻辑上某处有一些值为“5”的参数。我还没找到...

问题仍未解决 ;)

------------已解决---------

我的自定义 css 中有 link 不存在的 .png 文件。

更多关于建议 (2)

我自己到处搜索参数 5。 然后我恢复使用 jasig 的默认 UI/theme 并且没有发生重定向。所以就我而言,我 100% 确定我的代码有问题。

我保持原样,继续生产,然后我有了一个新的 CAS 集成案例,它再次使用不同的自定义表单实现。

5 变成了 2 ...相同的版本等等。所以我跳进了 firefox 上的篡改数据以查看到底发生了什么。

在第一种情况下,它是我使用的自定义 CSS,它试图加载另一个不存在的 CSS。

在第二种情况下,我已将 JQuery 升级到 1.10,并将脚本标记放在 /includes/top.jsp。我也没有包含 /jsp/cas.js 文件。

使用 firebug 我注意到这个 JS 文件要求 @sourceMappingURL=jquery-1.10.2.min.map

我的 JS 文件夹中缺少它。

长话短说,当我以与 CAS 默认 UI 相同的顺序移动我的 JS 包含在 bottom.jsp 并且在我删除/修复所有相关 imports/includes 从我的自定义 JS/CSS 文件中,问题停止了。

-- 旧 -- 如果您正在设计自定义登录表单,则可能存在导致重定向的视图案例。

新建议(1)

在某些情况下会发生这种情况。 如果启用日志记录,您可能会注意到在第 5 次后弹出: 'initialFlowSetupAction'

在这种情况下,最常见的问题是您使用的是自定义表单而忘记设置 'flow' 隐藏字段。

<input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}" />

或 3.5.2

<input type="hidden" name="execution" value="${flowExecutionKey}" />

新建议(2)

我最近也 运行 遇到了一个奇怪的案例......我使用的是自定义 CSS 已正确加载但它包含对丢失文件的导入: @import url(ui.datepicker.css);

这也通过 TamperData(2 次调用 cas/login)和 firebug、302 从 ui.datepicker.css[=12= 的请求重定向到 cas/login 中得到证明]

ps。这是我的第一个 post :)