Mah*_*oni 10 java security authentication servlets jetty
使用Java Servlets进行表单身份验证的标准方法是什么?
从现在开始,我使用一个简单的POST HTML表单实现了它:
但是现在我偶然发现了如何使用嵌入式Jetty配置安全性,现在我想我可以重用已经实现的解决方案来解决这个问题,但这里的标准方法是什么?我自己在使用Jetty,但是Tomcat或其他Web服务器呢?
我还读到了j_security_check,那是什么?这是遗留方法吗?
Ram*_*PVK 14
您应该使用由Tomcat,Websphere,Glassfish等Servlet容器提供的JAAS安全性.
默认情况下,这些容器支持以下身份验
HTTP基本身份验证
指定HTTP基本身份验证要求服务器从Web客户端请求用户名和密码,并通过将用户名和密码与指定或默认领域中的授权用户数据库进行比较来验证用户名和密码是否有效.
如果未指定身份验证机制,则基本身份验证是默认身份验证.
使用基本身份验证时,会发生以下操作:
下图显示了指定HTTP基本身份验证时发生的情况.

HTTP基本身份验证客户端和服务器之间HTTP基本身份验证的四个步骤图
基于表单的身份验证
基于表单的身份验证允许开发人员通过自定义HTTP浏览器向最终用户呈现的登录屏幕和错误页面来控制登录身份验证屏幕的外观.声明基于表单的身份验证时,会发生以下操作.
下图显示了指定基于表单的身份验证时会发生的情况.

创建基于表单的登录时,请确保使用cookie或SSL会话信息维护会话.
要使身份验证正常进行,登录表单的操作必须始终为j_security_check.进行此限制是为了使登录表单无论用于哪个资源都可以工作,并且避免要求服务器指定出站表单的操作字段.以下代码段显示了如何将表单编码到HTML页面中:
<form method="POST" action="j_security_check">
<input type="text" name="j_username">
<input type="password" name="j_password">
</form>
Run Code Online (Sandbox Code Playgroud)
摘要式身份验证
与基本身份验证一样,摘要身份验证根据用户名和密码对用户进行身份验证.但是,与基本身份验证不同,摘要式身份验证不会通过网络发送用户密码.相反,客户端发送密码和附加数据的单向加密哈希.尽管密码未在金属丝送出,摘要认证要求明文口令当量提供给所述认证容器,以便它可以通过计算预期的摘要验证接收到的认证器.
参考文献:
| 归档时间: |
|
| 查看次数: |
3570 次 |
| 最近记录: |