【发布时间】:2015-03-20 06:19:18
【问题描述】:
我正在努力让我的 RESTful 后端完全不了解 HTML。我希望它只与我的 HTML/CSS/JS 前端和其他连接客户端说 JSON。 OAuth2 提供AuthorizationEndpoint 服务/oauth/authorize。在其默认行为中,用户批准页面旨在成为 ModelAndView 生成的 HTML 结果。
我宁愿我的 HTML/CSS/JS 前端处理确认页面的显示(可能还有登录),然后将用户的批准发布到 /oauth/authorize。 POST /oauth/authorize 的结果将是一个 JSON 结果,其中包含令牌和要重定向到的 URL。然后前端代码将处理浏览器重定向回客户端。其余过程将照常进行。
我想错了吗?是否有任何我可能没有考虑到的安全问题?
谢谢!
【问题讨论】:
-
在实现这一点时,我发现我复制了很多
AuthorizationEndpoint代码。虽然我很想继承AuthorizationEndpoint类,但看起来AuthorizationServerEndpointsConfigurer硬编码了对AuthorizationEndpoint的引用。能够连接到authorizationEndpoint()并更改创建的类将使这项工作变得更加容易。有没有我看不到的机制? -
似乎完成这样简单的任务的最短路径是要求
AuthorizationServerEndpointsConfigurer提供AuthorizationEndpoint。通过这种方式,我可以提供自己的实现,并且仍然可以连接到所有现有的机器。现在我正处于复制/粘贴的世界中。 -
鉴于我还不能提供
AuthorizationEndpoint替换AuthorizationServerEndpointsConfigurer,我只想将配置的对象(TokenGranter、ClientDetailsService、AuthorizationCodeServices、OAuth2RequestFactory、OAuth2RequestValidator 和 UserApprovalHandler)公开为 bean .如果我可以将它们作为 bean 公开,那么我可以允许框架将@Autowire它们放入我的替换AuthorizationEndpoint。对此有什么想法吗?