1

我有一个简单的 Web 应用程序,我正在使用 spring-boot 和 Storm 路径编写用户身份验证。(我实际上使用的是 spring-boot-starter-stormpath-thymeleaf)

我的控制器中有以下请求映射

@RequestMapping(value = "/secure", method = RequestMethod.GET)
public String secure(Model mode, HttpServletRequest request) {
    Account account = AccountResolver.INSTANCE.getAccount(request);

    if (account != null)
        return "secure";
    else
        return "redirect:/login?next=secure";
}

这会强制用户登录以查看安全页面。它有效,但感觉不是最优雅的解决方案。有没有更好的办法?我认为应该可以使用过滤器解决方案,但我无法弄清楚。

4

3 回答 3

3

当前的 Stormpath Spring Boot 启动器(还)没有身份验证过滤器,但它将在未来的版本中提供给那些想要开箱即用体验而无需使用 Spring Security 或 Apache Shiro 的人。

也就是说,我们目前正致力于以原生方式支持 Spring Security 和 Apache Shiro 作为 Spring Boot 启动器,它们与 Stormpath Spring Boot 启动器“正常工作”。在我们可以发布这些之前,按照您的指示创建自定义 servlet 过滤器是最好的方法。

于 2015-05-04T16:49:02.890 回答
2

您是否也在使用 Stormpath Servlet?

如果是这样,您可以按照此文档执行所需的操作。这样,您只需要声明要保护的应用程序的哪些资源,Stormpath 的 authc 过滤器将在需要时提示进行身份验证。

于 2015-05-04T16:43:19.163 回答
1

如果你使用 Spring MVC,你应该使用 Spring Security 并让 Stormpath 充当身份验证提供者。然后使用标准的 Spring Security 工具来声明访问规则并在需要的地方注入当前用户。

于 2015-05-03T21:10:28.183 回答