http认证- Basic 认证
最近项目上用到http认真过的basic认证。所以遇到这个问题,做事情心情不可急躁,最开始急于求成,真的是郁闷了下,呵呵。本文主要讲如何在tomcat中配置Basic认证以及工作流程。
1. 项目配置
本测试环境采用的是Java web环境,其他项目环境暂未测试。
a) web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>
Jiuzhai Application
</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My jiuzhai</realm-name>
</login-config>
注意这里的<role-name>admin</role-name >标签,这个就是web项目允许的名称,
需要与后面的Tomcat的用户信息相对应。
2. Tomcat配置
本文的测试环境是Tomcat-6.0.35,其他版本暂未测试。
a) tomcat-users.xml
到Tomcat环境的conf目录下找到tomcat-users.xml文件。
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
b) 特别注意
这里配置的tomcat用户,必须有1个和上面web.xml配置的相同,不然会报403的错误。
3. 客户端访问
访问http://127.0.0.1:8080/lynch/admin/adminList.jsp

会弹出对话框提示认证,输入admin admin 可以登录。
4. 工作流程(通过firebug可以查看请求头)
a) 工作流程(通过firebug可以查看请求头)
b) 服务器发一个401返回,并含有下面的头
WWW-Authenticate Basic realm="My jiuzhai"

c) 客户端认证,含有下面的头
Authorization Basic dGVzdDp0ZXN0
YWRtaW46YWRtaW4=”是"admin:admin"的Base64编码。
(可以通过php函数base64_encode()验证)

5. 缺点
密码明文传输,非常不安全。
6. 其他方式
可以用httpclient来的实现,有兴趣的朋友,可自己查阅相关文档。
7. 参考文档
http://robblog.iteye.com/blog/554450
本文介绍如何在Tomcat环境中配置HTTP Basic认证,并详细解析其工作流程。包括web.xml及tomcat-users.xml的具体配置方法,客户端认证过程以及认证失败可能的原因。
1245

被折叠的 条评论
为什么被折叠?



