验证方法我们前面已经提到了,一共有四种分别是BASIC,DIGEST,FORM,CLIENT-CERT。下面我们分别来介绍一下:
1、BASIC验证
这种验证方式是比较流行的。当你访问受保护的资源时会弹出一个对话框,提示你输入用户名和口令。用户名以明文的方式传送,而密码则采用一种很容易实现的Base64编码。由于Base64容易实现,所以这种验证方法的安全性最低。
2、DIGEST验证
这种验证是将口令以加密的数字摘要进行传递,使用单向散列算法,在服务器端预先存放经过散列处理的口令,与传送过来的进行对比。由于在实际传输的时候传送的是摘要值,而它又是经过单向散列得来的,所谓单向散列就是通过摘要值是很难推断出原始值的,所以这种验证方式要比BASIC验证方式安全。
3、FORM验证
这种验证是采用自定义的一个登录和错误页面来处理验证。登录页面就是一个普通的表单,采用POST方式传送,所以这种验证方式安全性也比较低。下面通过一个简单的实例来了解一下怎样使用这种验证方式,如下代码:
更改后的web.xml文件
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Welcome to Pet hospital</realm-name>
<form-login-config>
<form-login-page>/Login.jsp</form-login-page>
<form-error-page>/Error.jsp</form-error-page>
</form-login-config>
</login-config>
登录页面Login.jsp如下:
<form action="j_security_check" method="post">
userName:<input type="text" name="j_username"><br>
password:<input type="text" name="j_password"><br>
<input type="submit" value="authenticate">
</form>
注意这里的action值应该是j_security_check,用户名是j_username,口令是j_password.
错误页面没有什么特别的,随便写一些提示信息就可以了。重新部署和启动服务器测试一下效果,看是不是已经调用了你的登录页面。
4、CLIENT-CERT验证
这种方式可以和SSL及数字证书一起来使用,这部分的内容比较复杂,我在另一个专题中给大家介绍。
系列文章:
Java Web应用程序的安全模型一
Java Web应用程序的安全模型二
Java Web应用程序的安全模型三
Java Web应用程序的安全模型五
Java Web应用程序的安全模型六之数字签名
Java Web应用程序的安全模型七--SSL
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!