我有一个在 Apache Tomcat 7.x 上运行的 Java/JEE Web 应用程序。假设它在这个 URL 上运行:
http://app.example.com:9080/app
我希望通过 WebSEAL 服务器(TAM for eBusiness 6.0)控制对这个应用程序的访问。因此,我创建了一个透明路径连接/app
来访问应用程序。
所以,现在我可以通过 WebSEAL URL 访问它,如下所示:
https://secure.example.com/app
我还创建了一个 ACL,它充当传递并允许任何人使用上述 WebSEAL URL 访问应用程序。身份验证由应用程序直接控制。所以,我不需要 TAM 来验证用户。
我的问题是,如何防止用户直接通过此 URL 访问应用程序:http://app.example.com:9080/app
?
我想知道是否可以使用某种标识来告诉我请求是来自 WebSEAL 服务器还是直接到应用程序 URL。
我尝试在 WebSEAL Junction 上启用这些选项:
在客户身份标头下
User Name (Short)
User Name (Full DN)
User Groups List
User Credential
常规选项
Insert client IP header
Insert WebSEAL cookies
Preserve names of cookies
Add cookie path to cookie names
这些选项不会添加任何 HTTP 标头,除非用户由 TAM 进行身份验证,这对我来说不是一个选项。如果可以,我可以创建一个 WebFilter,它可以在 Java 应用程序中读取此标头,并在标头丢失时阻止请求。但没有运气。
有什么建议么?