使用ADMIN角色Spring Security保护URL

时间:2017-10-17 11:00:07

标签: spring spring-boot spring-security

我想使用/ secure path的所有请求都需要ADMIN角色。 我所拥有的是一个控制器:

@Controller("/secure")
public class AdminController {

    @RequestMapping("/allPosts")
    public String allPosts(Model model){
        //some logic
        return "admin/allPosts";
    }
}

其中allPosts是src / main / resources / templates / admin中的HTML / Thymeleaf页面。 这是我的配置文件:

.antMatchers("/secure/**").hasRole("ADMIN")

当我访问localhost:8080 / secure / allPosts时,它会按预期显示404,但我也可以访问localhost8080 / allPosts,这是错误的。这怎么可能呢?

1 个答案:

答案 0 :(得分:2)

@Controller("/secure") - 这是你的错误。注释值实际上是bean名称,而不是请求映射。并不期望404 - 你应该期待403.尝试以下方法:

@Controller
@RequestMapping("/secure")
public class AdminController