spring Acegi security 是否可以用于社交网络应用程序,用户可以设置他们的安全偏好以仅与他们的朋友共享他们的数据?
Acegi 教程的常见场景是您要授权每个用户角色的操作,但是授权用户查看特定数据(例如,仅他们朋友的数据)呢?
是否可以为此使用Acegi?如何?
spring Acegi security 是否可以用于社交网络应用程序,用户可以设置他们的安全偏好以仅与他们的朋友共享他们的数据?
Acegi 教程的常见场景是您要授权每个用户角色的操作,但是授权用户查看特定数据(例如,仅他们朋友的数据)呢?
是否可以为此使用Acegi?如何?
简短的回答:是的。
请注意,Acegi 现在是Spring的一部分,现在称为Spring Security。
至于如何去做,这是一个复杂得多的问题,并且可能有与愿意尝试的人一样多的正确答案。您的最终解决方案将取决于您开发的应用程序的需求、您所处的环境以及您设计的组织。我假设您希望每个人(或大多数人)都能看到基本信息,并且如果请求者是朋友,敏感信息只会出现在页面上。
我相信最基本的方法将涉及在您的 servlet/控制器/资源中使用SecurityContext(设计 Web 应用程序的方法太多,无法在这里做出假设)和页面模板(jsf、jsp 等......等) ..),以获取对当前经过身份验证的用户的访问权限,并且仅包含允许用户访问的信息。
Spring Security 的基本要素是
- Security Interceptor
- Authentication Manager
- Access Decision Manager
- Run-As Manager
- After-Invocation Manager
安全拦截器的实际实现将取决于要保护的资源。如果您要保护 Web 应用程序中的 URL,安全拦截器将作为 servlet 过滤器实现。但是,如果您要保护方法调用,则将使用方面来强制执行安全性。
安全拦截器只是拦截对资源的访问以加强安全性。它实际上并不应用安全规则。相反,它将责任委托给各个经理。
通过使用适当的经理,您将设法满足您的要求。
参考:Manning Spring in Action 第 2 版 2007 年 8 月