春天安全可以满足这些需求吗?

时间:2011-03-23 10:34:10

标签: spring jsf-2 spring-security

我已经在网站上阅读了一些有关Spring安全性提供的功能。

但我只想确保在深入探讨自己的简单解决方案之前,希望有经验的开发人员使用Spring安全性做一些确认。

我目前正在开发使用jsf2 + primefaces,spring3,jpa2 + hibernate

我有这些需求:

  1. 拥有用户列表和用户组
  2. 需要在登录时验证用户(这是基本的,必须已经支持)
  3. 可以为模块配置安全系统(java项目的包或可以在UI中看作菜单/程序),因此如果用户被配置为能够访问菜单1和菜单3中的所有程序而且只能菜单4中的1个程序,然后菜单将仅显示允许的菜单,直接访问不允许的菜单/程序URL将导致错误。
  4. 需要在readonly level,r / w level等级别对服务方法(普通java方法)的用户进行身份验证。因此,例如,如果我们可以将public void save(...)配置为具有r / w访问权限,则只有给予r / w访问权限的用户才能调用此方法
  5. 甚至可以在JSF 2 xhtml上扩展它,我可以利用r或r / w访问启用/禁用按钮或链接或其他东西,也许以编程方式使用jsf组件的disabled属性。
  6. 如果使用AOP透明地完成某些功能(如验证程序或服务方法),而不会弄脏业务流程代码,
  7. 会更好。
  8. 请分享您的意见..

    谢谢!

1 个答案:

答案 0 :(得分:1)

Spring Security将支持您的大部分要求。

  1. 您可以使用该角色。例如:USER,ADMIN,CONTRIBUTOR等。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/technical-overview.html
  2. 你可以做的 form-login元素嵌套在安全配置的http元素中。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ns-config.html#ns-getting-started
  3. 在视图方面,您可以控制谁在使用JSP时看到使用taglib的内容。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html然后在服务器端,确保进行特定呼叫的人有权这样做。您可以在URL级别和方法级别进行控制。例如,对于URL,您具有嵌套在http中的intercept-url元素。您可以使用@Secured annotation
  4. 保护方法
  5. 不确定您对特定方法的读/写是什么意思,但如#3中所述,您可以使用注释来保护方法
  6. 不确定JSF允许您做什么,但如果您使用JSP,则可以使用前面所述的taglib
  7. 应该能够这样做,但我不能为你提供任何例子。我也想从其他人那里读到这篇文章。