java - 我对我的第一个简单网络应用程序的用户身份验证感到不知所措。我正在使用 JSF2.0 + Tomcat

标签 java jsf tomcat authentication

我意识到有无数关于身份验证的问题。此刻,所有这些都让我不知所措。对于我想做的事情,他们似乎有点矫枉过正。

我在 Tomcat 中使用 JSF 2.0。

我想创建一种允许登录/身份验证的“Hello World”应用程序。我希望用户能够通过一个简单的表单登录并提交一些文本。随后的登录将仅显示他们提交的最新文本,并允许提交其他文本。

最终的网站不会这么简单,当然,但我想为登录/身份验证奠定基础,因为这看起来将是我最大的障碍。

作为第一个可能是 hacky 的运行,我创建了自己的基本身份验证。这将触及我的基本问题……为什么我做错了/不安全?

注册后,我将用户 ID 和密码存储在数据库中。我将使用某种散列算法来存储密码,但我还没有决定使用什么。 登录后,我查找客户端提交的用户 ID/密码的匹配项。如果匹配,我将 userId 存储在 session 范围的托管 bean 中,并且用户正在访问他们的数据(暂时只是一个字符串)。

根据我一直在阅读的所有复杂内容,以这种方式进行操作对我来说似乎太容易了。为什么我的方法不好?我还需要学习如何将 HTTPS 用于登录/注册表单,对吗?

我知道我没有给你太多帮助。很抱歉问题表述不当。我正在努力在这个主题上站稳脚跟,并努力寻求一个不过分矫枉过正的解决方案。即我不想使用 Spring。

最佳答案

这是一个很大的答案。但简而言之,您需要执行以下操作:

首先,对于基于基本表单的身份验证,请查看此 example

但是您需要有某种方法从 LDAP 目录或数据库或其他一些服务中检索 web.xml 中的角色。

所以你需要配置一个领域来访问数据库中的角色(在你的例子中),这被提到here

最后,如果你想使用 SSL,你需要配置上面提到的 here

另一个例子 link .如果您仍然需要一些清晰度,请获取 Core JavaServer Faces 一书的副本并引用第 12 章。

关于java - 我对我的第一个简单网络应用程序的用户身份验证感到不知所措。我正在使用 JSF2.0 + Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164964/

相关文章:

java - AWS Elastic Beanstalk 中的 JDBC 连接字符串

java - 如何修复 "Error creating bean with name"

eclipse - 在 Eclipse 应用程序运行时排除 Maven 依赖

java - getResourceAsStream() 在 Eclipse 中返回 null,但并不总是返回 null

maven - 无法从jsf页面获取值

JSF 在数据表中的输出文本中添加前缀

java - OrderList 内的 Primefaces 面板

java - 从字符串中提取单词的正则表达式

java - JAVA中如何使用静态全局变量

java - 接口(interface)继承 - 改变方法参数