代码之家  ›  专栏  ›  技术社区  ›  user1375218

允许在没有身份验证的情况下使用特定的REST点

  •  0
  • user1375218  · 技术社区  · 8 年前

    我只允许在没有身份验证的情况下访问一个特定的Rest点。

    @GetMapping(MYPATH+“/{id}”) public Info getInfoById(HttpServletResponse response,@PathVariable(“id”)String id)引发异常{ ... }

    @GetMapping(MYPATH+“/{name}”) public Info getInfoByName(HttpServletResponse响应,@PathVariable(“name”)字符串名)引发异常{ ... }

    Web安全配置适配器:

    公共类SecurityConfig扩展了WebSecurity配置适配器{

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers( Controller.MYPATH + "/**");
    }
    

    如果我离开antMatchers,我可以禁用这两个点的身份验证,如上图所示。但我的目标是只允许id参数为的GET通过,而不需要身份验证。我试过控制器。MYPATH+“?id=**”,但它不起作用。有什么想法吗?谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   user1375218    7 年前

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