Apache Shiro(授权)+ SiteMinder(身份验证)

时间:2015-09-05 00:36:43

标签: authentication authorization shiro siteminder jdbcrealm

我已经完成了一个完全使用Apache Shiro的j2ee(jsf,cdi,jpa)应用程序,它工作得非常好,并且我正在享受shiro注释(hasRole,hasPermission等)。

现在,这个项目必须能够使用SiteMinder进行身份验证,这就是我的问题:

  • 如何在不丢失Shiro授权的情况下设置Realm来处理SiteMinder身份验证(似乎SiteMinder会在HTTP标头中提供用户名和角色名称)
  • 如果我创建一个自定义Realm,请执行" doGetAuthenticationInfo"并在会话中记录用户,SiteMinder会话会发生什么?
  • 如果我设置" subject.getSession()。setTimeout(1000);"在Shiro中,已经定义了超时的SiteMinder会话会发生什么?

我的目的是使用SiteMinder进行身份验证(并控制我的会话)并让Shiro仅用于授权。 Shiro无法介入SiteMinder Session。

1 个答案:

答案 0 :(得分:0)

  

如何在不丢失Shiro授权的情况下设置Realm来处理SiteMinder身份验证(似乎SiteMinder会在HTTP标头中提供用户名和角色名称)

在这种情况下,您需要有2个领域来处理身份验证,另一个领域来处理授权,请查看this one了解如何

  

如果我创建一个自定义Realm,请执行" doGetAuthenticationInfo"并在会话中记录用户,SiteMinder会话会发生什么?

您的自定义实体将负责成为SiteMinder的客户端,因此doGetAuthenticationInfo将返回您从SiteMinder返回的任何内容我不熟悉Siteminder,但您可以将CAS realm作为示例进行检查

  

如果我设置" subject.getSession()。setTimeout(1000);"在Shiro中,SiteMinder会话已经有一个已定义的超时会发生什么?

我认为当你使用sso解决方案时会出现混乱,会话由sso服务器而不是客户端管理