程序化认证

时间:2012-12-20 13:21:39

标签: spring spring-security

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

我保护所有页面。但是需要为系统用户和匿名用户提供几个URL。

但匿名用户不应该直接访问这些网址。如果此令牌有效,他将获得具有唯一令牌的链接并访问某些URL。 我想做的是:

  1. 在控制器中检查URL中的令牌是否有效
  2. 如果是 - 使用某些预定义的登录名和密码以编程方式验证系统中的用户。该用户将被配置为有权访问必要的URL。
  3. 问题是: 如果令牌有效,这是以编程方式对控制器中的某些角色执行用户身份验证的正确方法吗?这是安全的方法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我认为更好的方法是:

  • 将共享操作移至服务层
  • 为这些匿名用户定义一个控制器并授予其权限 匿名
  • 检查此控制器中令牌的有效性
  • 如果有效,请调用一些服务方法来执行操作。
  • 在此控制器中呈现结果