How Tomcat Works 10:安全

概述

有些web 应用程序的内容是有限制的,只允许有权限的用户在提供正确的用户名和密码的情况下才允许访问。

servlet 通过配置部署文件web.xml 来对安全性提供技术支持。

一个servlet 通过一个叫 authenticator 的阀门vavle 来支持安全性限制。

当容器启动的时候,authenticator 被添加到的容器的流水线上。

(域)Realm

域是用于进行用户验证的一个组件,它可以告诉你一个用户名密码是否合法。

一个域跟一个上下文容器相联系,一个容器可以只有一个域。

在catalina 中,一个域用接口org.apache.catalina.Realm 表示。

GenericPrincipal

一个principal 使用java.security.Principal 接口来表示。

一个GenericPrincipal 必须跟一个域相关联,主要是通过构造函数绑定关系。

GenericPrincipal 必须拥有一个用户名和一个密码,此外还可以选择性的传递一些角色。可以使用hasRole 方法来检查一个pricipal 是否有一个特定的角色。

LoginConfig 类

一个login configuration 包括一个域名,用org.apache.catalina.deploy.LoginConfig 类来表示。

LoginConfig 类封装了域名和验证要用的方法:

可以使用LoginConfig 实例的 getRealmName 方法来获得域名;

可以使用getAuthName 方法来验证用户。

Tomcat 在部署启动的时候,先读取web.xml .如果web.xml 包括一个login-config 元素,tomcat 创建一个LoginConfig对象并相应的设置它的属性。

Authenticator 类

Authenticator 用来表示真正的验证器。这个接口没有方法,只是一个组件的标志器。这样就能检测一个组件是否是验证器

一个验证器的主要工作是验证用户。

安装 Authenticator 阀门

在部署文件中,只能出现一个login-config 元素,login-config 元素包括了auth-method 元素用于定义验证方法。

也就是说一个上下文容器只能有一个loginConfig 对象来说会用给一个authtication 的实现类。

auth-method的几种值:

  • BASIC                        BasicAuthenticator
  • FORM                        FormAuthenticator
  • DIGEST                     DigestAuthenticator
  • GLIENT-CERT           SSLAuthenticator

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值