当前位置: 首页 > 知识库问答 >
问题:

Spring安全OAuth2 Swagger

艾嘉石
2023-03-14

我试图在我的资源服务器上配置Swagger身份验证,以便我可以根据我的授权服务器进行身份验证。

我将资源服务器和授权html" target="_blank">服务器分开。它们都使用不同的端口在我的本地主机上启动。

  • 端口8083上的资源服务器

每当我试图“授权”时,就会出现CORS问题。

我从另一个网站分叉了一个项目作为我的测试场地。下面是分叉项目。

https://github.com/cbriarnold/oauth2-spring-boot-2.0.2

要进行测试,启动授权服务器和资源服务器后,请执行以下操作:

  1. 去http://localhost:8083/swagger-ui.html
  2. 点击授权按钮
  3. 在对话框中点击授权按钮

如果您打开了开发人员工具,您将看到存在CORS错误

在'http://localhost:8081/oauth/token/“起源”http://localhost:8083'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:飞行前请求不允许重定向。

与上述CORS错误关联的http状态代码为302。

所以,我修改源代码以尝试允许所有(我知道从安全角度来看这是不希望的,但我只是想弄清楚发生了什么)。我将收到相同的CORS错误,但https状态代码为403。代码位于以下分支上。

https://github.com/cbriarnold/oauth2-spring-boot-2.0.2/tree/permitAll

有什么建议吗?

共有1个答案

东门楚
2023-03-14

我认为你需要在你的控制器上添加@CrossOrigin(/*你的命中服务器*/)

这是一个chrome安全检查,看看你是否被允许与该服务器对话,它首先发送一个选项请求,如果你被允许,它会发送你的原始请求,即访问swagger

如果您想确定这是否是一个跨来源问题,或者不尝试通过邮递员发送该请求,因为邮递员首先直接发送您的请求而不选择请求

 类似资料:
  • 问题内容: 我在我们的应用程序中使用Spring安全性,并希望使用存储在数据库中的更改密码选项的密码来验证用户输入。 密码如下存储在DB中。 在此,用户输入的密码使用上述逻辑进行编码并存储在DB中。现在,我只是想从用户那里获取更改密码的密码。从用户那里获得密码后,我使用上述逻辑进行编码,然后尝试与数据库进行比较。即使我使用相同的逻辑进行编码,编码后的值似乎也有所不同。 我的配置来自: 我不确定比较

  • 客户端需要LDAP和本地JDBC身份验证机制。 它们需要一种对两组用户都通用的授权机制。 应该根据用户的角色限制用户进入某些页面。以及需要应用于每个用户的单独权限(创建、更新、删除)集 那么,我如何实现按页授权,这将由管理员决定谁(哪个角色)可以访问哪个页面? 是否应该在配置中指定每个角色页组合?是否有任何方法可以动态地改变页面和角色,因为角色可能会在以后添加。

  • 当我使用security.basic.enabled=false在具有以下依赖项的Spring Boot项目上禁用安全性时: 为了修复此异常,我必须添加属性-management.security.enabled=false。我的理解是,当执行器在类路径中时,应该将security.basic.enabled=false和management.security.enabled=false设置为禁用

  • 问题陈述:我有一些Rest的API,它们使用Spring安全性进行CSRF保护。此外,这些API将通过Angular WEB UI从不同的Origin/domain访问。我不需要Spring Authentication,因为身份验证由Siteminder处理。 方法:我遵循了Dave Syer提供的CSRF保护的链接:登录页面:Angular JS和Spring Security Part II

  • 因此,我正在尝试保护我使用Spring mvc和安全构建的Web应用程序。我目前拥有来自正常自定义登录页面的基本用户名和密码,该页面使用自定义身份验证提供程序工作,以提供针对数据库进行验证的填充身份验证对象。我想知道的是如何实现使用TOTP的第二阶段登录?我可以让TOTP发布和验证工作,但不确定如何修改Spring Security以通过在我指定的登录页面以外的页面上提交令牌的表单来接受对授权的更

  • 因此,作为一个初学者,我曾尝试使用spring boot 2.2.11、spring security、thymeleaf和json web令牌创建一个ecommmerce网站,我的问题是,当用户对模板进行身份验证时,即使我在模板中放置了thymeleaf的isAnonyms和IsAuthentificated标记,模板也没有更改。 我有两个问题: 1-/如何告诉所有控制器用户已经登录? 2-/如