【问题标题】:REST endpoints alongside regular Browser endpointsREST 端点与常规浏览器端点
【发布时间】:2020-04-26 01:16:37
【问题描述】:

我正在使用Spring BootSpring Security 制作一个网络应用程序
我有一些正常的端点可以在显示正常网页的浏览器中工作,还有一些REST 端点供桌面应用程序使用。
但是当我应用Spring Security 时,一切正常端点都可以正常工作,但是在邮递员上测试REST APIs 时,我一直在获取登录表单,就好像我正在使用浏览器一样,这是安全配置中的预期原因所有URLs 应该被认证
搜索后我发现所有教程都通过禁用csrflogin forms 来制作REST 安全配置
有人建议分成两个项目,但在我的情况下,他们使用相同的 DB 并且只为不同的控制器提供服务,因为我是 Spring 世界的新手,在保持一切简单的同时,我应该采用什么最好的方法?

【问题讨论】:

  • 请向您展示代码,以便社区可以提供帮助。
  • 只需要这里没有错误的建议
  • 您应该将其保存在 1 个项目中。不需要单独的项目,因为您是 Spring 新手,这会使事情变得困难
  • 好的,安全配置呢?

标签: spring rest spring-boot spring-security


【解决方案1】:

在配置 HttpSecurity 时,考虑使用 ant 匹配器来过滤掉哪些资源应该具有授权访问权限。 e. g.:

 http
            .authorizeRequests()
            .antMatchers("/api/xxx/xxx").permitAll()
            .antMatchers("/api/yyy/**").authenticated()
            .and()
            .csrf().disable()
            .formLogin().disable();

【讨论】:

  • 这不会禁用浏览器端点的 csrf 吗?
猜你喜欢
  • 2013-03-19
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2021-04-01
  • 1970-01-01
  • 2017-09-17
相关资源
最近更新 更多