我想只允许在没有身份验证的情况下访问一个特定的Rest点。
控制器:
@GetMapping(MYPATH +“/ {id}”) public Info getInfoById(HttpServletResponse response,@ PathVariable(“id”)String id)throws Exception { ... }
@GetMapping(MYPATH +“/ {name}”) public Info getInfoByName(HttpServletResponse response,@ PathVariable(“name”)String name)throws Exception { ... }
WebSecurityConfigurerAdapter:
公共类SecurityConfig扩展了WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers( Controller.MYPATH + "/**");
}
}
如果我离开antMatchers,我可以禁用两个点的身份验证,如上所示。但我的目标是只允许带有id参数的GET而不进行身份验证。我试过Controller.MYPATH +“?id = **”,但它不起作用。有任何想法吗?感谢。
答案 0 :(得分:0)
如果有人关心,解决方案是创建多个bean并使用不同的配置文件加载它们,即@Profile(“blah-unauthenticated”)。这样,我将所有经过身份验证/未经身份验证的点保存在不同的配置文件中。