允许特定的REST点而无需身份验证

时间:2017-11-20 15:12:25

标签: authentication spring-boot

我想只允许在没有身份验证的情况下访问一个特定的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 = **”,但它不起作用。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

如果有人关心,解决方案是创建多个bean并使用不同的配置文件加载它们,即@Profile(“blah-unauthenticated”)。这样,我将所有经过身份验证/未经身份验证的点保存在不同的配置文件中。