在 Tomcat 中设置 HTTP 基本认证的示例
- 在 $TOMCAT_HOME\conf\tomcat-users.xml 文件中配置角色和用户:
- 新建一个 Java Web 工程,编辑 web.xml 文件。
- 配置 <security-constraint/> 元素,指定角色可访问的资源集和可使用的 HTTP 方法。
Public resources /home/* HEAD GET all Secret resources /blog/* /photo/* HEAD GET POST PUT admin - 配置 <login-config/> 元素,指定认证方式为基本认证,并指定安全域。
BASIC hueyhome
测试:
a) 无认证信息请求
C:\Users\huey>curl -I http://localhost:8080/helloweb/home/index.htmlHTTP/1.1 401 UnauthorizedServer: Apache-Coyote/1.1Pragma: No-cacheCache-Control: no-cacheExpires: Thu, 01 Jan 1970 08:00:00 CSTWWW-Authenticate: Basic realm="hueyhome"Content-Type: text/html;charset=utf-8Content-Length: 951Date: Mon, 18 May 2015 14:10:55 GMT
b) 错误认证信息请求
C:\Users\huey>curl -I -u "all:none" http://localhost:8080/helloweb/home/index.htmlHTTP/1.1 401 UnauthorizedServer: Apache-Coyote/1.1Pragma: No-cacheCache-Control: no-cacheExpires: Thu, 01 Jan 1970 08:00:00 CSTWWW-Authenticate: Basic realm="hueyhome"Content-Type: text/html;charset=utf-8Content-Length: 951Date: Mon, 18 May 2015 14:19:01 GMT
c) 正确认证信息但该用户无指定资源的访问权限
C:\Users\huey>curl -I -u "all:all" http://localhost:8080/helloweb/blog/index.htmlHTTP/1.1 403 ForbiddenServer: Apache-Coyote/1.1Pragma: No-cacheCache-Control: no-cacheExpires: Thu, 01 Jan 1970 08:00:00 CSTContent-Type: text/html;charset=utf-8Content-Length: 1057Date: Mon, 18 May 2015 14:11:57 GMT
d) 正确认证信息且该用户无指定资源的访问权限
C:\Users\huey>curl -I -u "all:all" http://localhost:8080/helloweb/home/index.htmlHTTP/1.1 200 OKServer: Apache-Coyote/1.1Pragma: No-cacheCache-Control: no-cacheExpires: Thu, 01 Jan 1970 08:00:00 CSTAccept-Ranges: bytesETag: W/"317-1431758220112"Last-Modified: Sat, 16 May 2015 06:37:00 GMTContent-Type: text/htmlContent-Length: 317Date: Mon, 18 May 2015 14:11:04 GMT