初一七月
你必须承认,我们生存的这个世界取决于自身的能力而非别人的保护(AW)
随笔 - 23, 文章 - 0, 评论 - 11, 引用 - 0
数据加载中……
HTTP添加Basic认证
一个web站点,总会有一些资源需要保护,比如图片文件、某些页面等,使用basic认证简单方便,易于配置,且完全独立于开发。basic认证既可以在web容器上,也可以放到前端服务器上。
resin配置
basic的resin配置需要在web项目的描述文件web.xml中,通过添加如下内容,可以对指定路径的资源进行保护,所有对指定资源的访问,都需要输入配置的用户名与密码,验证通过后才可以正常访问。
<
authenticator
type
="com.caucho.server.security.XmlAuthenticator"
>
<
init
>
<
user
>
user:pass:admin
</
user
>
<
password-digest
>
none
</
password-digest
>
</
init
>
</
authenticator
>
<
login-config
auth-method
="basic"
/>
<
security-constraint
url-pattern
="/admin/**"
role-name
="admin"
/>
上面的配置代表当用户访问以yourapp/admin/开头的所有资源时,都需要通过basic认证(如果之前还没有通过的话),用户名是user,密码是pass。有时候需要保护的资源不止一项,那么可以用如下的方法配置。
<
authenticator
type
="com.caucho.server.security.XmlAuthenticator"
>
<
init
>
<
user
>
user:pass:admin
</
user
>
<
password-digest
>
none
</
password-digest
>
</
init
>
</
authenticator
>
<
login-config
auth-method
="basic"
/>
<
security-constraint
>
<
web-resource-collection
>
<
web-resource-name
>
Protected Context
</
web-resource-name
>
<
url-pattern
>
/admin/**
</
url-pattern
>
<
url-pattern
>
/manage/**
</
url-pattern
>
</
web-resource-collection
>
<
auth-constraint
role-name
='admin'
/>
</
security-constraint
>
此时所有以yourapp/admin/或者yourapp/manage/开头的资源都需要经过basic认证。
nginx配置
虽然resin的配置也可以达到效果,但是毕竟是配置到了工程文件中,以后定期更换用户名与密码,都得更新项目描述符;而且有个更要命的问题,如果一个resin上有多个项目的话,一次更新就需要修改所有相关项目的web.xml文件,太麻烦了。在nginx上也可以配置basic认证,而且更简单。
nginx的http basic认证密码是用crypt(3)加密的,可以试用apache的htpasswd生成密码文件。首先进入apache的安装目录,进入apache/bin/目录下,可以看到htpasswd,输入如下命令生成密码文件。
htpasswd -c -d pass_file user_name
其中-c表示生成文件,-d表示是以crypt加密,pass_file是密码文件名,user_name表示basic认证的用户名,回车后会提示输入密码,然后再次输入确认,生成密码文件完成。
然后就是配置nginx,nginx的认证需要配置到location下,如下所示。
location ~ /admin/manage {
auth_basic "Auth";
auth_basic_user_file pass_file;
}
其中Auth可以随意设置,它只不过是当需要认证时弹出窗口的服务显示名称而已,pass_file就是我们之前生成的密码文件,这里要注意nginx 0.6.7开始,auth_basic_user_file的相对目录是nginx_home/conf,以前版本的相对目录是nginx_home,现在只要访问包含/admin/manage路径的资源都会弹出认证框,而且对于一个nginx代理了n个web服务的情况,需要更换用户名与密码时,只需要将密码文件替换一次即可,比第一种方式方便可靠了很多。
posted on 2011-02-23 22:41
初一七月
阅读(4653)
评论(2)
编辑
收藏
所属分类:
Web
评论
#
re: HTTP添加Basic认证
回复
更多评论
能不能讲讲http basic在实际工作用的应用呀。。。。。。。
2012-08-23 09:59 |
phperstar
#
re: HTTP添加Basic认证
回复
更多评论
请问,添加basic认证后,会弹出输入用户名和密码的窗口,有没有办法让nginx记住用户名密码,下次可以自动登录啊?
2014-05-05 17:55 |
liuzx
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Redis并发问题
svn版本对比
Apache 命令
SpringMVC添加支持Http的delete、put请求
HTTP添加Basic认证
个别图片IE中无法显示问题
Powered by:
BlogJava
Copyright © 初一七月
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2012年8月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
(23)
DB(3)
(rss)
Eclipse(5)
(rss)
Java(1)
(rss)
JavaScript
(rss)
Linux(3)
(rss)
Maven(5)
(rss)
Nginx
(rss)
Resin
(rss)
Web(6)
(rss)
随笔档案
(23)
2013年11月 (2)
2013年1月 (1)
2012年7月 (4)
2011年8月 (2)
2011年5月 (4)
2011年4月 (2)
2011年2月 (2)
2011年1月 (4)
2010年12月 (1)
2010年10月 (1)
搜索
最新评论
1. re: SpringMVC添加支持Http的delete、put请求
444
--777
2. re: SpringMVC添加支持Http的delete、put请求[未登录]
@李凡
spring 的 转换必须是POST请求,GET请求是不会转的。
--0
3. re: SpringMVC添加支持Http的delete、put请求
$.getJSON
data += "&_method=put";
后台好像不能请求到put方法上去
--李凡
4. re: HTTP添加Basic认证
请问,添加basic认证后,会弹出输入用户名和密码的窗口,有没有办法让nginx记住用户名密码,下次可以自动登录啊?
--liuzx
5. re: Maven创建一个web应用
评论内容较长,点击标题查看
--最代码
阅读排行榜
1. Oracle数据类型之number(75007)
2. Linux下安装maven(58723)
3. Redis并发问题(36571)
4. MyEclipse安装Python插件PyDev(9865)
5. SpringMVC添加支持Http的delete、put请求(9406)
评论排行榜
1. SpringMVC添加支持Http的delete、put请求(5)
2. Maven创建一个web应用(2)
3. HTTP添加Basic认证(2)
4. 数据库并发问题及事务隔离级别(1)
5. MyEclipse6.0反编译插件jadclipse安装(1)