在使用RMI的分布式系统上使用Apache Shiro的正确方法?

时间:2013-12-05 17:09:18

标签: java rmi distributed shiro

我正在寻找有关如何使用Java RMI将Apache Shiro实现为分布式系统(客户端 - 服务器)的一些指南/提示。

我已经看过这个帖子的答案:How to organize RMI Client-Server architecture而我正在考虑使用类似的东西。我计划的是一个远程对象(可能是Singleton?),它在客户端登录时处理身份验证。如果登录成功,则会创建一个新的会话对象。但是我不太确定这个对象在哪里以及存储在其中的信息。它应该传递给客户端还是作为另一个远程对象存在。

我认为它应该被用作某种会话外观,其中来自客户的每个请求都由Shiro授权。 我不确定是否最好(也可能)为客户端提供Shiro知道的唯一令牌/标识符,并且可以基于每个方法调用进行授权,或者为每个方法调用创建一个远程会话外观对象。连接并存储有关当前用户的信息等。

另外,我不太清楚Shiro在多线程应用程序中使用时如何处理Subject,以及上述任何一个提议是否会引起冲突。

我很期待听到你的想法 - 谢谢!

1 个答案:

答案 0 :(得分:0)

正如我对该问题的回答所述,登录对象确实是一个单例,而会话对象确实是另一个远程对象。

我没有看到你提到的关于向Shiro进行身份验证的两个备选方案之间有任何区别。从Shiro的角度来看,会话对象客户端。