eri*_*ire 5 java spring spring-security spring-annotations
我正在尝试将Spring Security 3 @Secured(“ admin”)注释转换为与Spring Security 4兼容的方式。
这是我的 usersService.java
@PreAuthorize("hasAuthority('admin')")
public List<User> getAllUsers() {
return usersDao.getAllUsers();
}
Run Code Online (Sandbox Code Playgroud)
然后在security-context.xml我有:
<security:intercept-url pattern="/admin" access="permitAll" />
...
<security:global-method-security pre-post-annotations="enabled" />
Run Code Online (Sandbox Code Playgroud)
getAllUsers() 被一个叫 LoginController.java
@RequestMapping("/admin")
public String showAdmin(Model model) {
List<User> users = usersService.getAllUsers();
model.addAttribute("users", users);
return "admin";
}
Run Code Online (Sandbox Code Playgroud)
在mySql数据库中,有两个表,用户表和权限。authorities有两列,用户名和权限。administrator有权力admin。
现在,如果我尝试访问/admin,我将被重定向到/login,但是使用登录后administrator,我仍然会收到“访问被拒绝”的信息。
我想我一定错过了一些非常基本的东西,但是由于我是Spring的新手,所以我无法弄清楚。任何帮助,将不胜感激。谢谢。
更新:我尝试将注释更改为@PreAuthorize(“ hasRole('ROLE_ADMIN')”),并且还将mySql中的admin的“ authority”列从“ admin”更改为“ ROLE_ADMIN”,但它仍然给我403。没有这多少信心,因为这个错误之前,我不得不改变hasRole('admin')在securityContext.xml给hasAuthority('admin')。
| 归档时间: |
|
| 查看次数: |
9152 次 |
| 最近记录: |