2

spring Acegi security 是否可以用于社交网络应用程序,用户可以设置他们的安全偏好以仅与他们的朋友共享他们的数据?

Acegi 教程的常见场景是您要授权每个用户角色的操作,但是授权用户查看特定数据(例如,仅他们朋友的数据)呢?

是否可以为此使用Acegi?如何?

4

2 回答 2

2

简短的回答:是的。

请注意,Acegi 现在是Spring的一部分,现在称为Spring Security

至于如何去做,这是一个复杂得多的问题,并且可能有与愿意尝试的人一样多的正确答案。您的最终解决方案将取决于您开发的应用程序的需求、您所处的环境以及您设计的组织。我假设您希望每个人(或大多数人)都能看到基本信息,并且如果请求者是朋友,敏感信息只会出现在页面上。

我相信最基本的方法将涉及在您的 servlet/控制器/资源中使用SecurityContext(设计 Web 应用程序的方法太多,无法在这里做出假设)和页面模板(jsf、jsp 等......等) ..),以获取对当前经过身份验证的用户的访问权限,并且仅包含允许用户访问的信息。

于 2009-03-28T19:46:53.100 回答
1

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 月

于 2009-05-02T19:54:09.720 回答