开发者社区> sea-boat> 正文

tomcat的realm域

简介: Realm域,其实可以看成是一个包含了用户及密码的数据库,而且每个用户还会包含了若干角色。也就是包含了用户名、密码、角色三个列的数据记录集合,如下图,最下面椭圆内的包含的整块即可以看成realm域。
+关注继续查看

Realm域,其实可以看成是一个包含了用户及密码的数据库,而且每个用户还会包含了若干角色。也就是包含了用户名、密码、角色三个列的数据记录集合,如下图,最下面椭圆内的包含的整块即可以看成realm域。它的出现是为了方便统一地提供一种X(用户,密码,权限)与Yweb资源)的映射关系。

 

    我们有三个web应用的资源及对应资源访问角色,web1应用中url1资源必须拥有role1角色的用户才可以访问,web2应用中rul2资源则需要role2角色才可访问,而web3应用的rule3角色可以访问url3资源和url4资源。这时有了realm域就可以很方便建立起用户与每个web应用及相关资源的权限关系。

所以Realm域是为了统一web容器资源安全管理、统一抽离重复认证工作、方便web应用资源权限管理开发而提出的一个概念。它属于在web容器级别提供权限认证的支持,它支持三个Container级别的共享,即Engine、HostContext,我们知道tomcat结构分为四个级别,除了这三个还有一个wrapper级别,由于它对应的是一个servlet,所以它不能有对应的realm。那么Engine级别属于所有web应用共享,Host级别则属于在该虚拟主机上的web应用共享,而Context级别则是专属于某个web应用。从这方面可以看出tomcat又可以通过配置提供不同的realm共享级别。

那么在了解了什么是realm域后,我们进一步看看,realm可以以不同的存储方式保存用户名、密码、角色,例如数据库、配置文件、其他存储系统等等。所以根据不同的存储方式tomcat提供了各种支持。下面就看下realm的类型。

JDBCRealm,用户密码角色信息保存在一个关系数据库中,通过JDBC驱动对信息进行获取。

DataSourceRealm,用户密码角色信息保存在一个关系数据库中,通过配置JNDIJDBC数据源对信息进行获取。

JNDIRealm,用户密码角色信息保存在一个基于LDAP协议的目录服务器中,通过JNDI对信息进行获取。

UserDatabaseRealm,用户密码角色信息保存在一个名为“UserDatabase”的JNDI资源中,一般默认是保存在conf/tomcat-users.xml文件中。这是tomcat默认的realm,也是通过JNDI对信息进行获取。

MemoryRealm,用户密码角色信息保存在内存当中,其通过conf/tomcat-users.xml进行初始化。通过指定内存对信息进行获取。

JAASRealm,用户密码角色信息保存在JAAS相应的配置文件中,通过JAAS框架对信息进行获取。


点击订购作者《Tomcat内核设计剖析》



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
19217 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18714 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
10004 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
21676 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
13974 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
13948 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
17200 0
+关注
sea-boat
擅长篮球、跑步、游泳、羽毛球、编程、看书、写书的顾家好男人! Java深度、大数据、中间件、搜索引擎、机器学习、深度学习、Python、C++、开源! 《Tomcat内核设计剖析》作者。
276
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载