2011-03-23 32 views
3

我读过的功能什么的Spring Security提供的网站上一点点..春季安全可以回答这些需求吗?

但我只想做潜水前务必下来,甚至我自己的滚动简单的解决方案,希望从有经验的开发一些确认的是利用Spring的安全性。

即时通讯目前使用JSF2 + primefaces,spring3,JPA2 + hibernate的

我有这方面的需求发展:

  1. 拥有的用户列表,用户组
  2. 的需要对用户进行认证在登录时(这是非常基本的,它必须已经被支持)
  3. 安全系统可以配置为模块(java项目的包或者可以看作UI中的菜单/程序),所以如果用户被配置为能够访问al l菜单1和菜单3中的程序,菜单4中只有1个程序,则仅显示允许的菜单,直接访问不允许的菜单/程序URL将导致错误。
  4. 需要在服务方法(纯java方法)上对用户进行身份验证,如只读级别,r/w级别。例如,如果我们可以配置该公共无效保存(...)以获得r/w访问权限,则只有具有r/w访问权限的用户才可以调用此方法
  5. 甚至可以在JSF 2 xhtml上扩展此功能,在那里我可以使用r或r/w访问来启用/禁用按钮或链接或其他东西,也许编程方式使用jsf组件的disabled属性。
  6. 如果某些功能如验证程序或服务方法是使用AOP透明地完成的,而不污染业务流程代码,则会更好。

请在此分享您的意见..

谢谢!

+0

总之,是的! – 2011-03-23 10:35:43

+0

+1好问题 – Nilesh 2011-03-23 10:40:25

+0

spring security + JSF 2.0是一个很好的组合。前进! – Selvin 2011-03-23 13:37:27

回答

1

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

  1. 您可以使用该角色。例如:USER,ADMIN,CONTRIBUTOR等。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/technical-overview.html
  2. 您可以使用 嵌套在安全配置的http元素中的form-login元素。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ns-config.html#ns-getting-started
  3. 在视图方面,您可以控制谁在使用JSP时使用taglibs。请参阅http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html然后在服务器端,确保发出特定呼叫的人有权这样做。您可以在URL级别和方法级别进行控制。例如,对于URL,您有嵌套在http中的intercept-url元素。您可以使用@Secured注释保护方法
  4. 不确定您对特定方法的读写意味着什么,但是如#3所述,您可以使用注释来保护方法
  5. 不确定JSF可以让您这样做,但是如果你使用的JSP,您可以使用标签库像以前
  6. 说应该可以这样做,但我不能为你提供任何例子虽然。我也想在这个上看别人。
+0

感谢您的分享。关于用户角色,我们可以定义自己的角色吗?我希望为客户提供一个web应用程序,以便能够根据需要创建他们自己的用户,将用户与一个或多个角色相关联,创建新角色,将角色与程序相关联,无论它是只读还是只读访问。春季安全还支持JSF,因为我不再为这个新项目做任何JSP。谢谢 ! – bertie 2011-03-24 03:20:36

+0

当你说“与程序相关联的角色”时,你打算怎么做?听起来你想创建动态角色(这很好),但是你如何定义某个特定“区域”仅限于特定角色?至于JSF,我不确定它支持什么。 – 2011-03-24 13:37:33

+0

抱歉不清楚,但..想象一下,我有购买,销售,应付账款,库存等菜单。这些菜单中的每一个都有菜单项或子菜单。每个菜单项都对应一个JSF视图。例如,我想绘制一个示例,该角色或此用户只能访问菜单购买,但不能访问销售,也可以访问库存菜单中的多个菜单项,但仅限于只读访问。 – bertie 2011-03-25 03:42:21