`
韩悠悠
  • 浏览: 845017 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

15,tomcat安全

 
阅读更多

有些web应用程序的内容是有限制的,只允许有权限的用户在提供正确的用户名和密码的情况下才允许访问。
Servlet通过配置部署文件web.xml来对安全性提供技术支持
一个servlet通过一个叫authenticator的阀门(valve)来支持安全性限制。
当容器启动的时候,authenticator被添加到容器的流水线上
authenticator阀门会在包装器阀门之前被调用。authenticator用于对用户进行验证,
如果用户熟人了正确的用户名和密码,authenticator阀门调用下一个用于处理请求servlet的阀门。
如果验证失败,authenticator不唤醒下一个阀门直接返回。由于验证失败,用户并不能看到请求的servlet。

(域)Realm
域是用于进行用户验证的一个组件,它可以告诉你一个用户名密码对是否是合法的。
。一个域跟一个上下文容器相联系,一个容器可以只有一个域。可以使用容器的setRealm方法来建立它们之间的联系。
在Tomcat的默认实现里,合法用户被存储在tomcat-users.xml文件里。
但是可以使用域的其它实现来访问其它的源,如关系数据库。

一个域用接口org.apache.catalina.Realm表示。该接口最重要的方法是四个authenticate方法:

public Principal authenticate(String username, String credentials);
 public Principal authenticate(String username, byte[] credentials);
 public Principal authenticate(String username, String digest,
                                  String nonce, String nc, String cnonce,
                                  String qop, String realm,
                                  String md5a2);
public Principal authenticate(X509Certificate certs[]);
域还有getContainer和setContainer方法用于建立域与容器的联系。

一个域的基本上实现是抽象类org.apache.catalina.realm.RealmBase。
org.apache.catalina.realm包中海提供了其它一些类继承了RealmBase
如:JDBCRealm, JNDIRealm, MemoryRealm,和 UserDatabaseRealm。默认情况下使用的域是MemoryRealm

LoginConfig类
一个login configuration包括一个域名,用org.apache.catalina.deploy.LoginConfig类表示。
LoginConfig的实例封装了域名和验证要用的方法。可以使用LoginConfig实例的getRealmName方法来获得域名,
可以使用getAuthName方法来验证用户。
Tomcat一个部署启动的时候,先读取web.xml。如果web.xml包括一个login-confgi元素,
Tomcat创建一LoginConfig对象并相应的设置它的属性。验证阀门调用LoginConfig的getRealmName方法并将域名发送给浏览器显示登录表单。

Authenticator类
Authenticator接口用来表示一个验证器。该方接口并没有方法,只是一个组件的标志器,
这样就能使用instanceof来检查一个组件是否为验证器。
Catalina提供了Authenticator接口的基本实现:org.apache.catalina.authenticator.AuthenticatorBase类。
除了实现Authenticator接口外,AuthenticatorBase还继承了org.apache.catalina.valves.ValveBase类
BasicAuthenticator用于基本验证, FormAuthenticator用于基于表单的验证, DigestAuthentication用于摘要(digest)验证,
SSLAuthenticator用于SSL验证。
NonLoginAuthenticator用于Tomcat没有指定验证元素的时候。
一个验证器的主要工作是验证用户。因此,AuthenticatorBase类的invoke方法调用了抽象方法authenticate,该方法的具体实现由子类完成


安装Authenticator阀门
在部署文件中,只能出现一个login-config元素,login-config元素包括了auth-method元素用于定义验证方法。
这也就是说一个上下文容器只能有一个LoginConfig对象来使用一个authentication的实现类。

例子10

 

分享到:
评论

相关推荐

    Tomcat最佳实践.rar

    Tomcat最佳实践 1,WEB SERVER介绍 2,TOMCAT目录结构 3,TOMCAT端口管理 ...14,TOMCAT安全策略 15,TOMCAT的URL编码格式 16,TOMCAT传输压缩 17,TOMCAT集群和负载均衡 18,ECD部门AP(TOMCAT)部署规范

    apache-tomcat-9.0.0.M15.zip

    按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器...

    Linux中将Tomcat添加到守护进程

    为了解决这个问题,我们需要创建一个名为 `tomcat` 的专用用户和组,以降低安全风险并限制Tomcat的权限。执行以下命令: ```bash groupadd www useradd -r -s /sbin/nologin -g www tomcat ``` 接下来,将Tomcat...

    apache-tomcat-9.0.0.M15.tar.gz

    按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器...

    Tomcat配置管理实践

    1,WEB SERVER介绍 2,TOMCAT目录结构 3,TOMCAT端口管理 ...5,TOMCAT配置数据库 ...14,TOMCAT安全策略 15,TOMCAT的URL编码格式 16,TOMCAT传输压缩 17,TOMCAT集群和负载均衡 18,ECD部门AP(TOMCAT)部署规范

    tomcat9 64位

    15. **更新与升级**:要升级到新的Tomcat版本,只需替换旧版本的文件,并重新配置任何自定义修改,确保兼容性。 总之,Apache Tomcat 9 提供了一个高效、可靠的Java web应用运行环境,其配置灵活性和丰富的管理特性...

    tomcat工具

    - **发布日期**:Tomcat 7于2010年3月15日首次发布。 - **支持的Java版本**:支持Java 6及以上版本。 - **Servlet规范版本**:支持Servlet 3.0规范。 - **安全性和性能**:Tomcat 7相比之前的版本,在安全性和性能...

    tomcat中文帮助文档

    Tomcat支持多种安全认证机制,如Basic、Form、Digest等。`conf/tomcat-users.xml`文件用来定义用户和角色,`server.xml`中的`<Realm>`元素定义了具体的认证方式。 7. **性能优化** 优化Tomcat涉及到调整JVM参数、...

    Ubuntu 12.04 安装配置 Tomcat 7.0.40Tomcat 服务器.docx

    15. 最后,你可以通过服务来启动Tomcat,使用`sudo service tomcat start`命令。 通过以上步骤,你就成功地在Ubuntu 12.04上安装并配置了Tomcat 7.0.40服务器,可以进行Java Web应用的部署和管理了。请注意,这些...

    Professional Apache Tomcat 6

    14. **第14章:Tomcat安全** - 分析了Tomcat的安全特性,包括身份验证、授权策略等。 15. **第16章:使用JMX监控和管理Tomcat** - 教授如何利用Java Management Extensions (JMX)对Tomcat进行远程管理和性能监控。...

    tomcat中文帮助手册

    15. **社区支持**:推荐一些Tomcat相关的论坛、邮件列表和在线资源,为用户提供进一步的帮助和支持。 通过《Tomcat中文帮助手册》,无论是初学者还是经验丰富的开发者,都能深入理解Tomcat的运作机制,提高开发和...

    apache-tomcat-9.0.0.M25-windows-x64.zip

    按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器...

    tomcat各版本,Linux和win版本32和64位全6.0.29版到9.0版本全15个

    在选择Tomcat版本时,需要考虑应用程序所依赖的Java版本、所需的功能以及对最新安全更新的需求。更旧的版本虽然可能满足基本需求,但缺乏最新的安全修复,可能使系统面临风险。而较新的版本则可能包含与旧应用不兼容...

    apache-tomcat-5.5.33.rar

    15. **集群和负载均衡**:虽然Tomcat 5.5.33的集群支持不如后续版本强大,但仍可通过配置实现简单的负载均衡和故障转移。 16. **安全性更新**:5.5.33版本修复了一些安全漏洞,保持系统安全至关重要,用户应及时...

    Tomcat-7.0-doc

    15. **静态资源缓存**: Tomcat可以缓存静态资源,提高响应速度。 16. **WAR部署**: Web应用程序通常打包为WAR文件,Tomcat能自动解压并部署。 17. **虚拟主机**: 一个Tomcat实例可以托管多个虚拟主机,每个虚拟...

    apache-tomcat-7.0.82-windows-x86

    15. **社区支持**:Apache Tomcat拥有庞大的开发者社区,提供丰富的文档、教程和问题解答,使得学习和解决技术问题变得更加容易。 以上是对Apache Tomcat 7.0.82在32位Windows系统上使用的关键知识点,涵盖了安装、...

    tomcat服务器

    15. **更新与维护**:定期检查并更新到最新版本以获取安全补丁和性能提升。 总之,Apache Tomcat是一个功能强大的Java应用服务器,广泛应用于开发和生产环境,为开发者提供了便捷的方式来部署和运行Java Web应用。...

    TOMCAT最佳实践

    TOMCAT安全策略** 使用Java安全策略文件(java.policy)限制应用的权限,防止恶意代码执行。 **15. TOMCAT的URL编码格式** 确保URL编码符合RFC 3986标准,避免安全漏洞。 **16. TOMCAT传输压缩** 启用压缩功能,...

    tomcat.zip

    7. **安全管理**:Tomcat支持多种安全措施,如通过`users.xml`和`roles.xml`配置用户角色,实现基于角色的访问控制(RBAC),以及使用SSL/TLS协议加密通信。 8. **JNDI(Java Naming and Directory Interface)**:...

    tomcat常见问题及其解决方法

    8. **安全漏洞**:定期更新Tomcat版本,修补已知安全漏洞。同时,配置`server.xml`中的`Connector`元素,启用SSL/TLS加密通信。 9. **权限控制**:限制对`webapps`目录的访问,只允许特定用户进行部署操作,通过修改...

Global site tag (gtag.js) - Google Analytics