【问题标题】:How to authenticate and authorize webapp request in Tomcat Servlet Container如何在 Tomcat Servlet Container 中对 webapp 请求进行身份验证和授权
【发布时间】:2012-06-25 20:20:48
【问题描述】:
在 Tomcat Servlet 容器中对 webapp 请求进行身份验证和授权的最佳方法是什么?
我有两个想法,
1 - 使用 Tomcat 领域。
2 - 有一个 Web 服务,它提供了根据 XACML 策略评估用户请求的能力。这意味着,如果我们将用户名、资源名(这里是 servlet)发送到该 Web 服务,它会根据 XACML 策略(我们可以更改或添加新策略)评估请求并说允许或拒绝。
最好的方法是什么?
【问题讨论】:
标签:
web-services
tomcat
web-applications
realm
xacml
【解决方案1】:
我建议你使用 tomcat 领域或 servlet 过滤器
【解决方案2】:
容器管理的身份验证是标准解决方案。这意味着您在 Tomcat 中定义一个 JAASRealm 并定义您自己的 LoginModule(s) 和 JAAS 配置文件。 LoginModules 可以做任何你喜欢的事情。 Tomcat 将在需要时确保登录,并通过登录模块设置并在 web.xml 中定义的用户角色执行访问控制。无需过滤器。
【解决方案3】:
我编写了一个 Servlet PEP,它从 HttpServletObject 和可能的附加信息创建 XACML 请求,例如时间并将其发送到 PDP。
为此,我实现了 javax.servlet.Filter。这确实是前进的最佳方式。然后,您可以在 web.xml 中定义过滤器的范围。
然后,我的 PEP 将 XACML 请求作为 SOAP 消息发送到 Axiomatics XACML 3.0 PDP。你在用什么?
也可以在 Youtube 上查看我的 SDK 视频,该视频展示了如何快速创建 Java PEP。 http://www.youtube.com/watch?v=Z_2M775uFxo