Spring Security - 奇怪的错误

时间:2011-11-07 18:46:42

标签: security spring tiles

所有

我正在尝试将Spring Security(3.0.7)添加到我的Web应用程序(Spring 3.0.6,Tiles 2.2)。默认< form-login />按预期工作,但我不能创建一个自定义的。遇到的一些问题:

  1. 每次用户点击登录链接时,登录页面都会被调用两次
  2. 如果用户不存在,UserDetailsS​​ervice会抛出异常,但异常永远不会在任何地方被拾取并使用。这导致< form-login />重新路由到登录页面而不是authentication-failure-url
  3. 使用错误的用户名登录时,我从未看到错误消息(这可能是由于上面提到的上一个问题)
  4. 成功登录后,有时会打开正确的页面,有时会随机打开页面内引用的javascript文件。
  5. 我已经按照那里的所有教程进行操作,无法提供任何有用的内容。有没有人碰巧知道负责创建默认登录的类?也许我可以查看源代码并模仿它们的内容。

    有没有人经历过这样奇怪的行为?

1 个答案:

答案 0 :(得分:0)

我想出了我的两个问题。我发布它们以防其他人有相同的事情发生。

对于#1 /#4:该网站使用的是瓷砖,整个网站都使用了默认的html标题块。

<html>
 <head>
  <script src="foo.js" type="text/javascript">
 </head>

配置explicilty为未登录的用户阻止了此javascript文件。

    <intercept-url pattern="foo.js" access="isAuthenticated()"/>

因此,当用户访问主页时,除了foo.js之外,该网站将加载。由于foo.js中的方法在登录之前从未被调用过,所以一切似乎都能正常工作。

然而,当有人试图登录时,Spring Security将foo.js视为要显示的第一个受保护页面,并自动将其打开。

这也导致登录页面被调用两次。一次用于实际登录链接,一次用于foo.js文件。