【问题标题】:Spring access control to pageSpring对页面的访问控制
【发布时间】:2016-12-09 13:50:53
【问题描述】:

我有这个 Spring+Thymeleaf 项目,用户必须回答问题,然后他/她可以填写表格。 我想限制对这个表单页面 (/finish.html) 的访问,这样您就无法通过在浏览器中键入它来直接访问它,并且您必须正确回答了一个问题。 我有这段代码,

Long max = difficultyLevels.stream().map(d -> d.getLevel()).max(Long::compareTo).get();
        if (levelId > max) {
            return "redirect:/finish";
        }

我认为我应该添加一些内容来授予对 /finish.html -page 的访问权限。但是我该怎么做呢?

【问题讨论】:

    标签: java html spring thymeleaf


    【解决方案1】:

    重定向会导致新的客户端请求。因此,如果您想安全地保护 /finish 端点,有一些策略:

    您可以在会话上放置一个值,您可以在呈现页面之前在 /finish 控制器中检查该值。

    您还可以使用重定向属性来传递某种加密令牌并在完成控制器中检查它。见What are ways for pass parameters from controller after redirect in spring mvc?

    您也可以使用转发而不是重定向。您可以将数据添加到 servlet 请求,如下所述:Spring forward with added parameters?。这可能对您不起作用,因为它不会更改浏览器 url。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2023-03-20
      相关资源
      最近更新 更多