在 Tomcat 中设置 HTTP 基本认证的示例

  1. 在 $TOMCAT_HOME\conf\tomcat-users.xml 文件中配置角色和用户:

    <tomcat-users>
    <role rolename="all"/>
    <role rolename="admin"/> <user username="all" password="all" roles="all"/>
    <user username="admin" password="admin" roles="admin,all"/>
    </tomcat-users>
  2. 新建一个 Java Web 工程,编辑 web.xml 文件。
  3. 配置 <security-constraint/> 元素,指定角色可访问的资源集和可使用的 HTTP 方法。
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Public resources</web-resource-name>
    <url-pattern>/home/*</url-pattern>
    <http-method>HEAD</http-method>
    <http-method>GET</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>all</role-name>
    </auth-constraint>
    </security-constraint> <security-constraint>
    <web-resource-collection>
    <web-resource-name>Secret resources</web-resource-name>
    <url-pattern>/blog/*</url-pattern>
    <url-pattern>/photo/*</url-pattern>
    <http-method>HEAD</http-method>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>admin</role-name>
    </auth-constraint>
    </security-constraint>
  4. 配置 <login-config/> 元素,指定认证方式为基本认证,并指定安全域。
    <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>hueyhome</realm-name>
    </login-config>

测试:

a) 无认证信息请求

C:\Users\huey>curl -I http://localhost:8080/helloweb/home/index.html
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 08:00:00 CST
WWW-Authenticate: Basic realm="hueyhome"
Content-Type: text/html;charset=utf-8
Content-Length: 951
Date: Mon, 18 May 2015 14:10:55 GMT

b) 错误认证信息请求

C:\Users\huey>curl -I -u "all:none" http://localhost:8080/helloweb/home/index.html
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 08:00:00 CST
WWW-Authenticate: Basic realm="hueyhome"
Content-Type: text/html;charset=utf-8
Content-Length: 951
Date: Mon, 18 May 2015 14:19:01 GMT

c) 正确认证信息但该用户无指定资源的访问权限

C:\Users\huey>curl -I -u "all:all" http://localhost:8080/helloweb/blog/index.html
HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 08:00:00 CST
Content-Type: text/html;charset=utf-8
Content-Length: 1057
Date: Mon, 18 May 2015 14:11:57 GMT

d) 正确认证信息且该用户无指定资源的访问权限

C:\Users\huey>curl -I -u "all:all" http://localhost:8080/helloweb/home/index.html
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 08:00:00 CST
Accept-Ranges: bytes
ETag: W/"317-1431758220112"
Last-Modified: Sat, 16 May 2015 06:37:00 GMT
Content-Type: text/html
Content-Length: 317
Date: Mon, 18 May 2015 14:11:04 GMT

Tomcat - 设置 HTTP 基本认证的更多相关文章

  1. Tomcat - 设置 HTTP 摘要认证

    在 Tomcat 中设置 HTTP 摘要认证的示例 在 Tomcat 中设置摘要认证与设置基本认证几乎一样,差别在于配置 web.xml 时,<login-config/> 元素在指定认证 ...

  2. Tomcat 容器的安全认证和鉴权

    大量的 Web 应用都有安全相关的需求,正因如此,Servlet 规范建议容器要有满足这些需求的机制和基础设施,所以容器要对以下安全特性予以支持: 身份验证:验证授权用户的用户名和密码 资源访问控制: ...

  3. Keytool配置 Tomcat的HTTPS双向认证

    Keytool配置 Tomcat的HTTPS双向认证 证书生成 keytool 简介 Keytool是一个Java数据证书的管理工具, Keytool将密钥(key)和证书(certificates) ...

  4. Eclipse下Tomcat设置

    1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomcat的,需要我们自己设置. New - ...

  5. Tomcat 配置 HTTPS双向认证

    Tomcat 配置 HTTPS 双向认证指引说明: � 本文档仅提供 Linux 操作系统下的指引 � 在阅读本指引前请您在 Linux 部署 JDK 和 Tomcatserver为了 Tomcat ...

  6. Tomcat设置默认启动项目及Java Web工程设置默认启动页面

    Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tom ...

  7. Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址

    Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址 >>>>>>>>>>>> ...

  8. tomcat设置默认启动项

     Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下:     1.打开tomcat的安装根目 ...

  9. eclipse及tomcat设置编码

    新装的eclipse新导入项目会乱码,解决办法: 右击项目选properties,找到resources选择utf-8 改后乱码解决 乱码解决后可能还会有红叉,project clean即可 一劳永逸 ...

随机推荐

  1. 转载IEnumerable与IEnumerator区别

    public interface IEnumerable {     IEnumerator GetEnumerator(); }   public interface IEnumerator {   ...

  2. 利用hashtable和time函数加速Lisp程序

    程序功能是从一个英文文本中得到单词表,再得到押韵词表.即输出可能这样开始: a ameoeba alba samba marimba... 这样结束: ...megahertz gigahertz j ...

  3. Codeforces Round #353 (Div. 2) D. Tree Construction (二分,stl_set)

    题目链接:http://codeforces.com/problemset/problem/675/D 给你一个如题的二叉树,让你求出每个节点的父节点是多少. 用set来存储每个数,遍历到a[i]的时 ...

  4. UOJ Test Round #2

    昨天晚上打的这个比赛,简直一颗赛艇啊-- 感觉发挥的并不好.比赛的时候比较紧张,最后一题还脑残写了个离散化结果爆零了,哎我怎么这么逗逼-- 讲讲比赛经过吧. 比赛之前逗逼地以为是8:00开始,然后淡定 ...

  5. MySQL Update语句用法

    用一个表的某列值更新另外一个表的某列值的sql语句: update tableA a innner join tableB b on a.column_1 = b.column_1 set a.col ...

  6. heritrix

    Heritrix3.0教程    http://blog.csdn.net/neo_liukun/article/category/1118819

  7. PyQt入门系列(一):Hello World

    开始搞PyQt了,顺便记录一下自己的学习!资料参考某大神的PyQt4 精彩实例分析,以及<征服Python>这本书. 下面是Demo: #-*- coding:utf-8 -*- #编码声 ...

  8. 美国VPS推荐1GB 50GB可以win

    今天向大家推荐一款vps,1GB内存 50G硬盘 8M带宽 不限制流量,并且可以安装windows,年付才290元. 购买链接:http://www.jinbaoidc.com/page.aspx?c ...

  9. php openssl 生成公私钥,根据网上文章整理的

    linux下没有问题,win下有报错 <?php$configargs = array("config" => "/usr/local/php/ext/ope ...

  10. delphi CoolBar这个怎么弄没了

    CoolBar这个怎么弄没了 像Windows这样的     procedure TForm1.Button1Click(Sender: TObject); begin    CoolBar1.Fix ...