【发布时间】:2015-10-17 03:51:43
【问题描述】:
问题:
- 是否存在对 Servlet 容器通用的用户和角色概念?
- 如果是这样,是否有与容器无关的方式来访问这些用户和角色?
- 如果没有,有没有办法访问 Tomcat Realm 用户和角色?
背景:
我想从 Java webapp 上下文(Servlet 容器)获取所有用户和他们的角色,或者更好的是,直接查询用户和他们的角色。
如果您知道连接字符串,我看到有像 Apache Directory 这样的项目可以让您为 LDAP 执行此操作。但是,我希望对服务于用户和角色的技术保持不可知论。
具体来说,我在 Tomcat 上,在最简单的情况下,我想访问 a) tomcat-users.xml b) 上下文中任何其他配置的 Realm 中的用户和角色。但是,我真的在寻找一个不特定于 Tomcat 的解决方案,它是 Realms。
【问题讨论】:
-
Servlet 只关心给定请求的安全上下文,因此您可以确定谁在调用并获取有关它们的一些详细信息。您要问的实际上是 servlet 规范不知道或不关心的目录(LDAP/Database/whatever)。 JNDI 可能是用于访问目录的通用 API 的最佳选择(尽管您需要实现
Realm或类似 Realm 的组件才能真正挖掘从 JNDI 返回的对象)。
标签: java tomcat user-roles servlet-container