`
youyun_2008
  • 浏览: 113524 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

学习tomcat 小记(5)

阅读更多
安全性

一些web应用的内容是受限的,只有有特定权限的用户才能访问。

servlet容器通过一个称为authenticator的valve来支持安全认证。当container启动时,authenticator被添加到container的pipeline中。在wrapper被调用之前,会先调用authenticator,用来对用户进行认证。若用户输入了正确的用户名密码,则authenticator会调用下一个valve,否则会直接返回,不再继续执行剩余的valve。
authenticator调用context的realm的authenticate方法对用户身份进行认证。

Realm(领域)
realm是通过用户名密码对用户身份进行认真的组件,通常附属于某个context,而一个container也只能有一个realm。可以调用container的setRealm方法将realm和container相关联。
realm如何对用户进行认证呢?答案是使用存储在realm实例的信息或从store中查找需要的信息,这取决于realm的具体实现。在tomcat中,用户信息被存储在tomcat-users.xml文件中。

GenericPrincipal
principal由java.security.Principal接口表示。在catalina中的实现是org.apache.catalina.realm.GenericPrincipal类。一个GenericPrincipal实例必须关联一个realm。

LoginConfig
登录配置包含了一个realm名,由org.apache.catalina.deploy.LoginConfig类表示,该类是一个final类。LoginConfig类将realm名和相应的认证方法进行了封装。调用LoginConfig的getRealmName方法可以获得realm的名字,调用getAuthName方法获取认证方法。其中认证方法必须是下面的可选项之一:BASIC,DIGEST,FORM或CLIENT-CERT。若使用了基于表单的认证方式,则LoginConfig实例也可以使用属性loginPage和errorPage分别表示登录url和错误页面。

Authenticator
org.apache.catalina.Authenticator接口表示了一个authenticator组件。它没有任何方法,只是起到一个标志位的作用,这样,其他的组件就可以检测某个组件是否是一个authenticator。
catalina提供了一个Authenticator接口的基本实现,org.apache.catalina.authenticator.AuthenticatorBase类。除了实现Authenticator接口外,AuthenticatorBase类还扩展了org.apache.catalina.valves.ValveBase类,也就是说,AuthenticatorBase类也是一个valve。org.apache.catalina.authenticator包下有一些Authenticator接口的是实现类,例如BasicAuthenticator(支持基本认证),FormAuthenticator(基于表单的认证),DigestAuthentication(支持摘要的认证),SSLAuthenticator(支持SSL的认证)。此外,若tomcat用户没有为auth-method指定值时,会使用NonLoginAuthenticator类进行认真。NonLoginAuthenticator类仅仅检查安全性,并不涉及用户身份认证。

分享到:
评论

相关推荐

    windows下部署tomcat项目小记

    5. **异常处理**:查看Tomcat的`logs/catalina.out`日志文件,它通常会显示详细的错误信息,帮助定位问题。 总的来说,Windows下部署Tomcat项目需要对Java Web应用的生命周期、Tomcat的配置以及数据库连接有深入...

    Tomcat学习总结.zip

    《Tomcat学习总结》 Tomcat,作为Java Web应用程序的开源服务器,是Apache软件基金会Jakarta项目的一个核心组件。在本文中,我们将深入探讨Tomcat 8.5版本的学习要点,包括其工作原理、配置与优化,以及在实际开发...

    Tomcat学习资料1

    【标题】:“Tomcat学习资料1”所涵盖的知识点包括了Tomcat服务器的使用、配置以及Web项目的部署。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一款开源的Java Servlet容器,广泛用于搭建Java Web...

    Tomcat源码学习:一个最简单的“Tomcat”

    【标题】"Tomcat源码学习:一个最简单的‘Tomcat’",这篇博客主要探讨的是如何通过学习Tomcat的源代码来理解这个流行的开源Java Servlet容器的工作原理。Tomcat是Apache软件基金会的一个项目,它是Java Web应用...

    tomcat官网版本Tomcat+Java学习资源

    【标题】:“Tomcat官网版本Tomcat+Java学习资源”是一个综合的学习资料包,主要针对的是Java开发中的关键工具——Apache Tomcat服务器以及相关的Java技术。Apache Tomcat是一款开源的Servlet容器,它实现了Java ...

    学习tomcat源码+英文《How Tomcat Work》和每一章的相关项目+tomcat6源码依赖jar

    总之,学习Tomcat源码不仅能够提升你对Web服务器底层工作的理解,还能够提高你在Java Web开发中的问题排查能力,让你成为一名更出色的开发者。通过阅读《How Tomcat Works》并结合实际项目实践,你将能够逐步揭开...

    tomcat5 源码学习,深度剖析tomcat一书的指定tomcat版本

    tomcat5 源码学习,深度剖析tomcat一书的指定tomcat版本,随着tomcat版本的升级,内容发生 了变化,但为了读懂书籍,还是得使用老版本得源码,欢迎大家下载,官网下载会出现下载不了的情况,我主页有tomcat4-tomcat9...

    tomcat7tomcat8tomcat9

    Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...

    tomcat源码学习之环境搭建

    5. **线程模型**:Tomcat使用NIO或 APR(Apache Portable Runtime)提供非阻塞I/O,以提高性能。深入理解`Executor`接口和`ThreadPool`类,了解Tomcat如何管理线程池来处理并发请求。 6. **部署和热更新**:Tomcat...

    tomcat学习资料整理(不断更新)

    【标题】"Tomcat学习资料整理(不断更新)"揭示了这个压缩包文件是关于Tomcat服务器的深入学习资源,特别是关注其源码和使用的工具。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它是一个开源的、免费的...

    tomcat7,tomcat8,tomcat9

    5. 右键点击服务器实例,选择"Start"启动Tomcat,通过浏览器访问应用。 总的来说,Tomcat7、Tomcat8和Tomcat9代表了Java Web服务器技术的发展历程,它们在兼容性、性能和功能上都有所提升,为开发者提供了可靠的...

    老版本Tomcat5--Tomcat5.028

    【标题】"老版本Tomcat5--Tomcat5.028"中涉及的主要知识点是Apache Tomcat服务器的早期版本,这是一个开源的应用服务器,主要用于运行Java Servlet和JavaServer Pages(JSP)技术。Tomcat 5.0.28是发布于2004年的...

    SSM + MySQL5 + Tomcat在线课程学习网站源码.zip

    SSM + MySQL5 + Tomcat在线课程学习网站源码 SSM + MySQL5 + Tomcat在线课程学习网站源码 SSM + MySQL5 + Tomcat在线课程学习网站源码 SSM + MySQL5 + Tomcat在线课程学习网站源码 SSM + MySQL5 + ...

    tomcat学习笔记

    【标题】:Tomcat学习笔记 【正文】: Tomcat是一款广泛应用的开源Web服务器和Java Servlet容器,由Apache软件基金会的Jakarta项目开发。它实现了Java Servlet和JavaServer Pages(JSP)规范,并且作为轻量级应用...

    tomcat9 源码学习

    源码学习对于理解Tomcat的工作原理、优化性能以及自定义功能至关重要。以下是一些在学习Tomcat9源码时会涉及的关键知识点: 1. **架构概述**:Tomcat由多个组件构成,如Catalina(核心Servlet容器)、 Coyote...

    tomcat5.5tomcat最新客户端

    tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...

    Professional Apache Tomcat 5

    - **Web应用的部署和管理**:学习如何在Tomcat中部署和管理Web应用,包括WAR包的创建、上下文配置和热部署。 - **性能调优**:提供一系列的性能优化策略,如内存管理、线程池配置和缓存机制的利用。 - **故障排查**...

    webServer tomcat5 / tomcat6 / tomcat7 / tomcat8

    标题中的"webServer tomcat5 / tomcat6 / tomcat7 / tomcat8"涉及到的是Apache Tomcat服务器的不同版本。Tomcat是一款开源的Java Servlet容器,主要用于实现Java Web应用程序的运行环境。它支持Servlet和JSP标准,由...

    tomcat学习精华笔记

    5. Tomcat 配置与管理 - server.xml:配置Tomcat服务器的全局参数,如端口设置、连接器、Context等。 - web.xml:定义Web应用的默认配置,如过滤器、监听器和servlet映射。 - Catalina的上下文配置:每个Web应用...

Global site tag (gtag.js) - Google Analytics