【问题标题】:Equivalent Spring @Controller with @RequestMapping("/endpoint"), but using Java EE 8 only与 @RequestMapping("/endpoint") 等效的 Spring @Controller,但仅使用 Java EE 8
【发布时间】:2018-04-23 22:59:49
【问题描述】:

所以我正在努力实施 Oath2 身份验证,以允许我的应用访问 Intuit Quickbooks 公司资源(项目、客户等)。

Intuit 提供了使用 Spring 的工作示例,但我正在使用带有 GlassFish5 的 JavaEE 8 开发我的应用程序。

Spring 示例应用回调控制器的结构如下:

@Controller
public class CallbackController {
...
@RequestMapping("/oauth2redirect") 
public String callBackFromOAuth(@RequestParam("code") String authCode, @RequestParam("state") String state, @RequestParam(value = "realmId", required = false) String realmId, HttpSession session) {
...
 //after successful validation
 return "connected";

这是重定向处理程序控制器;它在 intuit 门户中配置的地址(在本例中为 http://localhost:8080/oauth2redirect)将在用户批准应用程序后调用,并且 intuit 会将授权代码发送回此 url。

所以我有点难以找到 JavaEE 中等效的 Spring 回调重定向处理程序。

这里需要@WebServlet 或@WebService 吗?但是它不能很好地与 JSF 集成,只返回“已连接”字符串以便重定向到所需的页面(在本例中为 connected.xhtml)。

不是在寻找解决方法,而是在 JavaEE 上实现这一点的正确和标准方法。如果您能指出一些示例应用程序或教程,我将不胜感激。

提前非常感谢!

这是callback handler controllerfull sample app 的完整源代码。

【问题讨论】:

  • 了解 jax-rs

标签: jsf jakarta-ee


【解决方案1】:

至少在 JSF 中没有真正好的替代方案。是的,您可以“滥用”JSF,但还有其他更好的标准,这(几乎)是 Spring 也可以做到的。如果您阅读 Spring Specs ,您会看到“Rest”这个词被大量使用。

嗯,有一个真正的 Java 标准,称为“Jax-RS”,它是您在 spring 中所做的标准化对应物。

This 提供了对两者的不错分析,所以 Jax-RS 是要走的路。

但是 @WebServlet@WebService 与 JSF 完美集成。您可以在会话中存储任何身份验证信息并使用 JSF 中的信息。完全没有问题。

【讨论】:

  • 嗨@Kukeltje,这篇文章看起来正是我想要的。我会看看它。感谢回复!
  • 我尝试按下 UP 按钮,但它显示“感谢您的反馈!声望低于 15 人的投票将被记录,但不要更改公开显示的帖子得分。”
  • 好的...清楚...没问题。很高兴帮助您解决更多问题(jsf 相关 ;-))
猜你喜欢
  • 1970-01-01
  • 2021-07-08
  • 2021-12-23
  • 2017-04-12
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
相关资源
最近更新 更多