java - 在我的例子中,JSF 中选择哪种用户身份验证?

标签 java jakarta-ee authentication jsf-2 glassfish

我几乎花了一整天的时间进行 JSF 身份验证,我想我完全迷失了。我想要灵活的身份验证。

大多数人说“基于 HTTP FORM 的身份验证与 JDBC 领域相结合”是最好的..但在我看来有点..不灵活。我不想将数据库名称和表(其中用户名、密码、组等)设置为常量。

所以我的问题是:当我的网络服务(JAX-WS、WCF 等 - 我认为这并不重要)有一个返回用户名和密码是否正确的方法时,最好的方法是什么?当我有一个功能可以连接到数据库本身以检查用户和密码是否正确时..我只需要关心哪个页面显示(登录页面或“请求”页面)的整个机制。如果登录页面,它将使用我的网络服务方法来检查它..

顺便说一句。有没有什么好的文章可以比较并说明在什么情况下我们应该使用什么方法?

PS。如果这个话题不好的话,我很抱歉,我没有更好的主意:/

<小时/>

编辑: 换句话说:Here是如何使用领域和基于表单的身份验证的示例。 我必须有数据库,其中有用户表、用户名列、密码列、组表等,对吧?我必须用这个配置我的域...但是,如果我无权访问数据库怎么办?我只能访问网络服务,它会告诉我用户和密码是否正确。

在这种情况下我应该使用哪种用户身份验证方法?

最佳答案

一种方法是使用连接到 Web 服务而不是数据库的自定义领域。 如何做到这一点已经部分标准化(使用 JAAS),但仍然取决于应用程序服务器。 对于 glassfish,请参阅这个非常相似的问题和答案:Java Web Application: Using a custom realm to perform login through a webservice

另一种方法是不使用 Java EE 安全性,并在 Web 应用程序中自行处理所有安全性(例如使用过滤器等)。我会首先尝试使用自定义领域的符合 Java EE 的方式。

关于java - 在我的例子中,JSF 中选择哪种用户身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811250/

相关文章:

php - 如何测试受限页面? (PHP)

java - 使用 java 以编程方式创建 Alfresco 站点

java - 如何从html中获取文本和标题?

java - 定期执行线程并在满足条件或时间结束后停止它

java - 如何确定哪个菜单项称为 ActionListener?

jakarta-ee - 使用标准 JSR356 WebSocket 客户端的连接超时

jakarta-ee - 在智能IDEA 12中未将巨大的Axis2 stub 标识为Java类文件

node.js - NodeJS - Passport-JWT,如何设置多个提取器?

java - 错误 : annotation type not applicable to this kind of declaration

不使用客户端 ID 和 key 的 Azure AD Graph API 访问