Micronaut-在内置的安全控制器中启用CORS

时间:2020-06-04 04:42:33

标签: java jwt micronaut micronaut-client micronaut-rest

在我的一个项目中使用了Micronaut。我正在使用内置的登录,注销控制器启用micronaut的JWT安全功能。但是当我碰到/login端点时,它给了我下面的错误:

从源“ front-end-enpdpoint ”访问“ micronaut-login-endpoint ”处的XMLHttpRequest已被CORS策略阻止:对预检请求的响应没有t通过访问控制检查:所请求的资源上没有“ Access-Control-Allow-Origin”标头。

来自application.yml的摘录:

micronaut:
  application:
    name: app-name
  server:
    port: *port*
    cors:
      enabled: true
      configurations:
        web:
          allowedOrigins:
            - *front-end-enpdpoint*
          allowedHeaders:
            - Content-Type
          allowedMethods:
            - POST
            - GET
            - OPTIONS
  security:
    enabled: true
    endpoints:
      login:
        enabled: true
      logout:
        enabled: true
      oauth:
        enabled: true
    token:
      enabled: true
      jwt:
        enabled: true

有人可以帮助我解决这个问题吗? 来自micronaut核心社区的人(例如@ Jeff-Scott-Brown)可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我最近遇到了这个问题,并且能够使用此问题线程解决this

因此,遵循this mdn CORS文章。我发现有两种类型的CORS请求,简单请求和预检请求。如果是auth,则修改Authorization标头,这需要预检请求。在预检中,向服务器发出http OPTIONS(http方法)请求以确认其身份。现在,micronaut没有选项端点,可以通过创建github问题中提到的OPTIONS控制器来解决。