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  
相关文章
|
3月前
|
算法 数据库 数据安全/隐私保护
摘要认证,使用HttpClient实现HTTP digest authentication
这篇文章提供了使用HttpClient实现HTTP摘要认证(digest authentication)的详细步骤和示例代码。
269 2
|
3月前
|
安全 应用服务中间件 Shell
网站在后台启用了https协议之后重新登录就不进去后台的解决方法
网站在后台启用了https协议之后重新登录就不进去后台的解决方法
|
5月前
Ueditor——请求后台配置项http错误,上传功能将不能正常使用
Ueditor——请求后台配置项http错误,上传功能将不能正常使用
69 0
Ueditor——请求后台配置项http错误,上传功能将不能正常使用
|
6月前
|
存储 网络安全 数据安全/隐私保护
[flask]使用mTLS双向加密认证http通信
【7月更文挑战第16天】在Flask应用中实现mTLS双向TLS加密认证可增强HTTP通信安全性。步骤包括: 1. 使用OpenSSL为服务器和客户端生成证书和密钥。 2. 配置Flask服务器使用这些证书: - 安装`flask`和`pyopenssl`. - 设置SSL上下文并启用mTLS验证: 注意事项: - 保持证书有效期并及时更新. - 确保证书链信任. - 充分测试mTLS配置.
123 2
|
5月前
|
安全 网络安全 数据安全/隐私保护
[flask]使用mTLS双向加密认证http通信
[flask]使用mTLS双向加密认证http通信
143 0
|
5月前
|
网络协议 应用服务中间件 Go
[golang]使用mTLS双向加密认证http通信
[golang]使用mTLS双向加密认证http通信
109 0
|
6月前
Qt http的认证方式以及简单实现
以上就是Qt实现HTTP认证的基本步骤。需要注意的是,以上代码未进行错误处理,实际使用时需要根据具体情况进行相应的错误处理。
128 1
|
7月前
|
安全
tp5使用ueditor请求后台配置项http错误,上传功能将不能正常使用!
tp5使用ueditor请求后台配置项http错误,上传功能将不能正常使用!
441 0
|
8月前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用签名认证调用HTTP触发器的步骤如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
359 7
|
8月前
|
运维 Serverless API
Serverless 应用引擎产品使用之阿里函数计算中要关掉http触发器的jwt认证才可以进行性能探测如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。