Spring MVC,Spring Security,Database Controlled Page Access

时间:2011-08-17 12:24:15

标签: java spring spring-mvc spring-security

我正在使用Spring MVC 3.0.5和Spring Security 3.1.0RC2。我已经在我的站点中使用Active Directory身份验证,并且基本的<security:intercept-url /> XML可以过滤谁可以访问哪个页面。我现在要做的是添加一些东西,以便不是为了访问页面的人查看XML,我想检查数据库。我正在构建的网站应该让管理员更改哪些组可以访问哪些页面,所以我需要通过数据库来完成。任何指导都将不胜感激。

3 个答案:

答案 0 :(得分:0)

保护页面非常简单 - 让Spring Security为您完成。在您的控制器中,只需注释。之一:

@Secured("ROLE_SOME_ROLE")
@Controller
public class MySecuredController {
    @RequestMapping("/foo")
    public String myHander() {
       ...
    }
}

@Controller
public class MyController {
    @Secured("ROLE_SOME_ROLE")
    @RequestMapping("/foo")
    public String mySecuredHander() {
       ...
    }
}

答案 1 :(得分:0)

您可以实现查询数据库的自定义PermissionEvaluator。然后在控制器方法上使用@PreAuthorize批注,将“页面名称”传递给自定义PermissionEvaluator,以便它可以在数据库查询中使用它。

答案 2 :(得分:-1)

您可以在配置

中使用数据库来控制它
 <authentication-manager>
    <authentication-provider>
      <jdbc-user-service data-source-ref="dbDataSource"/>
    </authentication-provider>
  </authentication-manager>

其中db Data Source是数据库的数据源bean

只要数据库具有认证表弹簧查找它将默认选择它们,但您也可以配置其他选项。  即用户权限我假设您已经在使用