http auth basic认证保护后台admin

一个web站点,总会有一些资源需要保护,比如图片文件、某些页面等,使用basic认证简单方便,易于配置,且完全独立于开发。basic认证既可以在web容器上,也可以放到前端服务器上 。需要对后台地址admin进行保护,可以使用http auth basic,既方便又简单 

resin配置 
basic的resin配置需要在web项目的描述文件web.xml中,通过添加如下内容,可以对指定路径的资源进行保护,所有对指定资源的访问,都需要输入配置的用户名与密码,验证通过后才可以正常访问

Java代码  

  1. <authenticator type="com.caucho.server.security.XmlAuthenticator">  
  2.     <init>  
  3.     <user>user:pass:admin</user>  
  4.     <password-digest>none</password-digest>  
  5.     </init>  
  6. </authenticator>  
  7. <login-config auth-method="basic" />  
  8. <security-constraint url-pattern="/admin/**" role-name="admin" />  

上面的配置代表当用户访问以yourapp/admin/开头的所有资源时,都需要通过basic认证(如果之前还没有通过的话),用户名是user,密码是pass。有时候需要保护的资源不止一项,那么可以用如下的方法配置。

Java代码  

  1. <authenticator type="com.caucho.server.security.XmlAuthenticator">  
  2.     <init>  
  3.     <user>user:pass:admin</user>  
  4.     <password-digest>none</password-digest>  
  5.     </init>  
  6. </authenticator>  
  7. <login-config auth-method="basic" />  
  8. <security-constraint>    
  9.     <web-resource-collection>    
  10.     <web-resource-name>Protected Context</web-resource-name>    
  11.         <url-pattern>/admin/**</url-pattern>       
  12.         <url-pattern>/manage/**</url-pattern>  
  13.     </web-resource-collection>    
  14.     <auth-constraint role-name='admin' />     
  15. </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,输入如下命令生成密码文件。

Java代码  

  1. htpasswd -c -d pass_file user_name  

其中-c表示生成文件,-d表示是以crypt加密,pass_file是密码文件名,user_name表示basic认证的用户名,回车后会提示输入密码,然后再次输入确认,生成密码文件完成。

然后就是配置nginx,nginx的认证需要配置到location下,如下所示。

Java代码  

  1. location ~ /admin/manage {  
  2.     auth_basic  "Auth";  
  3.     auth_basic_user_file  pass_file;  
  4. }  

其中Auth可以随意设置,它只不过是当需要认证时弹出窗口的服务显示名称而已,pass_file就是我们之前生成的密码文件,这里要注意nginx 0.6.7开始,auth_basic_user_file的相对目录是nginx_home/conf,以前版本的相对目录是nginx_home,现 在只要访问包含/admin/manage路径的资源都会弹出认证框,而且对于一个nginx代理了n个web服务的情况,需要更换用户名与密码时,只需 要将密码文件替换一次即可,比第一种方式方便可靠了很多。

apache 配置 在httpd.conf写入
vi httpd.conf

Java代码  

  1. <Directory "/data/www/mrtg">  
  2.     AuthType Basic                #注意一点,Basic认证方法并不加密来自用户浏览器的密码  
  3.     AuthName "mrtg access"  
  4.     AuthUserFile /data/apache2/passwd/htpasswd    #密码文件,也就是htpasswd建立的文件  
  5.     Options Indexes FollowSymLinks  
  6.     AllowOverride AuthConfig  
  7.     Order allow,deny  
  8.     Allow from all  
  9.     Require valid-user  
  10. </Directory>  

 执行命令建立密码文件

Java代码  

  1. htpasswd -c /data/apache2/passwd/htpasswd username  
时间: 2024-10-31 08:44:22

http auth basic认证保护后台admin的相关文章

angularJs的http auth basic认证的例子

在jq里面,通过http auth basic认证的方法,可以直接在ajax参数里面放入username和password即可,如: $.ajax({  url: "/datacenter/identification/queryInfo",  contentType: 'application/json',  dataType: "json",  type: "POST",  data:JSON.stringify({'name':name,'

nginx添加http auth basic认证实现方法

需要对后台地址admin进行保护, http://www.abc/admin/admin.action之类的 可以使用http auth basic,既方便又简单, 1.首先要利用用apache 的 htpasswd 可以生成密码文件 只好先安装apache了 wget http://xxxx/tools/apache-2.0.63.tar.bz2 解压之后 ./configure --prefix=/home/app/httpd-2.0.63 make && make install 创

浏览器Basic Auth方式认证的phpMyAdmin自动登录

一.需求 自动登录 phpMyAdmin.最终能够解决自动登录所有使用 Basic Auth 方式认证的网页. . 二.phpMyAdmin 的四种认证登陆方式 1.config 配置文件.直接将允许登录的用户名和密码写在 config.inc.php 配置文件中. 2.cookie.最常用的方式,通过填写首页表单进行登录. 3.http.HTTP Basic Authentication 方式,使用浏览器的弹出式对话框进行登录.与 cookie 方式的区别主要在于用户体验. 4.signon.

[ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证

很多情况下目标Action方法都要求在一个安全上下文中被执行,这里所谓的安全上下文主要指的是当前请求者是一个经过授权的用户.授权的本质就是让用户在他许可的权限范围内做他能够做的事情,授权的前提是请求者是一个经过认证的用户.质询-应答(Chanllenge-Response)"是用户认证采用的一种常用的形式,认证方向被认证方发出质询以要求其提供用于实施认证的用户凭证,而被认证方提供相应的凭证以作为对质询的应答.旨在目标Action方法执行之前实施身分认证的AuthenticationFilter也

Basic认证

Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP服务器会返回401状态码,要求客户端输入用户名和密码.用户输入用户名和密码后,用户名和密码会经过BASE64加密附加到请求信息中再次请求HTTP服务器,HTTP服务器会根据请求头携带的认证信息,决定是否认证成功及做出相应的响应. 使用Tomcat进行Basic认证 如果熟悉Tomcat的朋友,肯定知

后台admin给用户发送消息后,如果用户回复了,怎么得到用户回复的消息?

问题描述 后台admin给用户发送消息后,如果用户回复了,怎么得到用户回复的消息? 解决方案 调用rest接口导出聊天记录,在导出的聊天记录中可以查看admin发送的消息,http://docs.easemob.com/doku.p ... atlog解决方案二:导出聊天记录后,在聊天记录中可以查看用户回复的消息.

python访问需要basic认证的网站例子

以前一直不知道普通的路由器的弹出框是怎么搞的,最近才无意中知道是用basic认证的.正好可以使用下面的代码进行认证  代码如下 复制代码 import urllib2, base64 def listen_server(url,user,password):     request = urllib2.Request(url)     base64string = base64.encodestring('%s:%s' % (user,password))[:-1]     request.ad

浅谈HTTP使用BASIC认证的原理及实现方法_java

一.BASIC认证概述 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法.客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中, 如当用户名为anjuta,密码为:123456时,客户端将用

Nginx模块参考手册:HTTP基本认证模块(HTTP Auth Basic)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 这个模块提供基于用户名与密码的验证来保护你的站点或站点的一部分.如下例: location / { auth_basic "Restricted"; auth_basic_ user_file conf/htpasswd;} 指令 auth_basic 语法:auth_basic [ text|off ] 默认值:auth_basic off 使用字段:http, server, location,