我正在使用Spring MVC 3.0.5和Spring Security 3.1.0RC2。我已经在我的站点中使用Active Directory身份验证,并且基本的<security:intercept-url />
XML可以过滤谁可以访问哪个页面。我现在要做的是添加一些东西,以便不是为了访问页面的人查看XML,我想检查数据库。我正在构建的网站应该让管理员更改哪些组可以访问哪些页面,所以我需要通过数据库来完成。任何指导都将不胜感激。
答案 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
只要数据库具有认证表弹簧查找它将默认选择它们,但您也可以配置其他选项。 即用户权限我假设您已经在使用