- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用户认证--域
当用户试图访问服务器上受限制的资源时,Tomcat就会质询用户的详细信息,确认用户是谁,这就是认证,当用户被认证后,服务器必须决定用户是否被授权访问受限制资源,这就是授权。这些概念组成了服务器案例策略。
Tomcat使用域实现和实施特定的安全策略。域本身自己不能实施安全策略,它只是作为用户信息的仓库,允许服务器或者应用程序实施安全策略。
域介绍
域是一个用户数据库的概念,类似于Unix中的用户群组。它通过用户名和密码来标识一个用户,这个用户属于一定的角色。而一个特定的Web应用资源,可以限定某个角色的用户才被允许访问。这种许可访问策略,是对Web应用的整体权限控制与应用细节相剥离,从而获得更好的可配置性。
域作为认证和授权的用户信息仓库,受益于Java的标准数据访问机制。域提供了标准接口给Tomcat,无论当前的数据存储是什么。如下图所示:
域作为标准的数据抽象层,必须提供标准的接口给Tomcat,也就是说每个当前的数据集合必须包括以下信息:
用户名
密码
分配给用户的角色
容器管理安全
容器管理安全是实现Web服务器的安全策略,意味着开发人员无须编写代码实现用户认证和授权,只需要依靠servlet容器实现认证。由于委托容器实现认证和授权,开发人员写的业务逻辑的代码就能运用到许多用户角色。如果他们想限制访问这些业务的逻辑代码,他们要求管理员实现容器管理安全,在用户和资源放置安全策略。这样,代码能够防止非授权的访问,而不需在应用中有任何改变。
配置域
熟悉域的概念和容器管理安全后,现在开始配置Tomcat域保护资源。
配置基于文件的域
MemoryRealm是一个简单的Tomcat域接口实现。它不是为大量用户名称认证而设计的,在启动时,MemoryRealm从一个xml文件装载关于用户,以及他们相应角色的信息(在默认情况下,该文件从CATALINA_HOME/conf/tomcat-user.xml加载)并将之存放在内存中。这个文件的数据更改会直到Tomcat重新启动后才会被重新加载识别。服务器在容器管理安全中可以使用MemoryRealm加载的信息,开发人员同样也可以在自己的代码中使用。
在server.xml文件中,MemoryRealm的配置如下:
Realm className=”org.apache.caalina.realm.MemoryRealm” /
这就指定了MemoryRealm使用CATALINA_HOME/conf/tomcat-user.xml文件(Realm默认的pathname参数就是指向这个文件),它在引擎层,因此在该引擎中的所有Web应用都可使用。
下一步就是必须在tomcat-user.xml文件中指定用户名,密码和角色。如下:
?xml version=1.0 encoding=utf-8?
tomcat-users
role rolename=registered-user/
role rolename=administrator/
role rolename=tomcat/
role rolename=role1/
user username=juan password=nauj roles=administrator/
user username=john password=nhoj roles=registered-user/
user username=juana password=anauj roles=administrator,registered-user/
user username=tomcat password=tomcat roles=tomcat/
user username=jane password=enaj roles=registered-user/
user username=both password=tomcat roles=tomcat,role1/
user username=role1 password=tomcat roles=role1/
/tomcat-users
如果用户担心使用明文存储密码的安全,则可以使用digest命令来加密。加密步骤如下:
在命令行中输入 digest –a md5 admin
该语句表明使用md5算法实现对密码admin的加密,输入命令执行后可以看到:
Admin:21234f…..
Digest默认一般使用md5算法,还可以使用sha算法。。。
配置用户数据库域
用户数据库域在内存域上有了很大的增强,它能提供下列三个大的提升:
可以在引擎生命周期内动态改变用户信息,当然必须重启服务器后,才能实现。
用户数据库是持久性的,能够保存tomcat-u
文档评论(0)