0

我在我的应用程序中使用 Spring Security。

我已经保护了所有页面。但是系统用户和匿名用户都需要有几个 URL。

但匿名用户不应直接访问这些 URL。他得到一个带有唯一令牌的链接,如果这个令牌是有效的,他就可以访问一些 URL。我想做的是:

  1. 在控制器中检查 URL 中的令牌是否有效
  2. 如果是 - 使用一些预定义的登录名和密码以编程方式验证系统中的用户。此用户将被配置为有权访问必要的 URL。

问题是:如果令牌有效,这是一种以编程方式在控制器中使用某些角色执行用户身份验证的正确方法吗?这是安全的方法吗?

4

2 回答 2

0

安全是一个方面。一个切面可以从你的主代码(控制器)中解耦,以减少代码重复并提高灵活性。将身份验证代码从控制器移动到新过滤器(确保此过滤器在弹簧安全过滤器链之后执行)。您将能够通过 web.xml(零行代码)保护新 URL。

于 2012-12-20T14:43:02.987 回答
0

我认为更好的方法是:

  • 将共享操作移至服务层
  • 为这些匿名用户定义一个控制器并将其权限设为匿名
  • 检查此控制器中令牌的有效性
  • 如果有效,则调用一些服务方法来执行操作。
  • 在这个控制器中渲染结果
于 2012-12-21T07:14:14.450 回答