security - Java EE 6 App不同的登录方法

标签 security jakarta-ee oauth jax-rs jaspic

我目前正在使用 JSF(前端)、JPA、EJB 和 CDI(后端)开发“基本”Java EE 6 应用程序。到目前为止一切都运转良好。

对于登录部分,我选择了基于表单的身份验证以及 JDBC-Realm。

现在我想提供一些 REST 服务 (Jersey),这些服务将由移动设备使用。因此我需要添加第二种方式进行身份验证。但根据我的理解,一次只能有一个。

我已经尝试过一些 PoC,但每次调用需要有效用户的 REST 服务时,该服务都会重定向到登录页面。

是否有处理此类问题的最佳实践?

是否可以将 Oauth 添加到当前登录机制中,因为我不想在每个请求中发送用户/密码或 session ID。某种 token 会很棒。

最佳答案

如果您的应用程序需要针对不同服务使用不同的身份验证机制,那么大多数 Java EE 实现(服务器)附带的登录模块实际上还不够。

您可能必须通过编写自定义登录/身份验证模块来亲自处理问题。 Java EE 6 有一个 API:JASPIC。或者,您可以使用特定服务器的专有登录模块 API。

在该登录/身份验证模块中,您可以检查请求,确定该请求属于哪个服务,然后委托(delegate)给适当的“真实”模块。

我写了an article about JASPIC不久前这可能会让你开始。

服务器通常有 an option to stack login modules 。这是一项专有功能,因此其中一个允许堆叠身份验证机制的可能性非常小。

关于security - Java EE 6 App不同的登录方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508909/

相关文章:

java - hibernate删除操作优化

java - 如何在 API 18 中使用 Android KeyStore API?

javascript - 使用安全 cookie 存储的 JWT 无状态登录 : how to implement log out?

java - 如何将 "warning"消息从 Service/DAO 传递到 UI?

jakarta-ee - 是否有在 Java/JakartaEE 中引入响应式(Reactive)编程结构的建议?

java - 使用 OAuth 2.0 [Blogger API] 使用您的 Google 帐户登录

java - 无法从 Google 应用引擎发送电子邮件

java - 云服务的 SecurityManager "sandbox"

c# - Facebook OAuth "Unhandled remote failure. (Correlation Failed.)"

api - OAuth(访问 token )与 API key