通过外部协调的SSO实现Seam安全性

时间:2010-06-22 12:31:12

标签: java jsf seam single-sign-on

我在WebLogic 10.3.2(11g)上部署了一个应用程序,用户通过SSO登录。换句话说,如果用户未登录,则会将其重定向到登录的SSO,然后重定向回应用程序。整个重定向由Oracle HTTP Server(一个经过修改的apache)完成,这确保只有经过SSO身份验证的用户才能看到该应用程序。

因此,当用户最终看到该应用程序时,他已经登录。

有没有办法在这种情况下使用Seam安全性?我想要的是使用Subject的角色来限制对某些页面和组件的访问。

我想到的一种方法,但我不确定,是使用由WebLogic的SSO身份验证提供程序填充的主题,并使用它来填充Seam的Identity组件。这将发生在身份验证方法中,该方法将始终返回true(因为用户已经登录)。在方法内部,主题的凭据和角色将在Seam身份内“转移”。

这可行吗?

干杯!

1 个答案:

答案 0 :(得分:2)

您可以编写自己的身份验证方法,或覆盖Identity类和login()方法来实现此目的。我做了类似的反向代理,执行了我们的身份验证。在该方案中,代理发回经过身份验证的用户的用户ID以及他们作为标头值的所有组。我写了一个过滤器来拦截标题,然后使用我的自定义Identity类来完成剩下的工作。