首页 > 解决方案 > Micronaut 服务不在 Grails 4.0.3 身份验证服务中进行身份验证

问题描述

我在使用 Micronaut v2.4.2 和 Spring Security 时遇到了麻烦。

我有五个微服务,其中一个负责对用户进行身份验证以访问其他服务中的端点。

我在 appication.yml 中为每个环境注册了相同的应用程序密钥,并且使用此密钥,身份验证微服务生成一个令牌,供客户端在其他微服务中使用其他端点时使用。

所有服务都按预期进行身份验证和工作,但是一旦我在尝试使用任何带有身份验证微服务生成的令牌的端点时收到 HTTP 401,Micronaut 框架下的服务就无法进行身份验证。

我的问题是:我应该在 Micronaut application.yml 中放置任何配置以使其工作吗?在我的 application.yml 下面

身份验证服务在 Grails 4.0.3 下工作。并与 jwt 一起使用。

 micronaut:
  application:
    name: cmbrel
  server:
    contextPath: /cmbrel
    port: 8088
    max-http-header-size: 65536

  security:
    authentication: bearer
    token:
      jwt:
        signatures:
          secret:
            validation:                  
              secret: '"key"'

    #intercept-url-map:
    #  - pattern: /graphiql
    #    access:
    #      - isAnonymous()
    #  - pattern: /graphql
    #    access:
    #      - isAuthenticated()

datasources:
  default:
#    url: ${CMBREL_JDBC_URL:`jdbc:h2:mem:default;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE`}
#    username: ${CMBREL_JDBC_USER: user}
#    password: ${CMBREL_JDBC_PASSWORD:pass}
#    driverClassName: ${CMBREL_JDBC_DRIVER:org.h2.Driver}
    
    pooled: true
    jmxExport: true
    dialect: org.hibernate.dialect.SQLServer2012Dialect
    driverClassName: ${cmbrel.jdbc.driver:com.microsoft.sqlserver.jdbc.SQLServerDriver}
    dbCreate: update
    url: ${cmbrel.jdb.url:`jdbc:sqlserver://IP;instanceName=DEV;databaseName=BD_RELATORIO_CMB`}
    username: ${cmbrel.jdbc.username: usr}
    password: ${cmbrel.jdbc.password:`pass`}
    logSql: true

jpa:
  default:
    properties:
      hibernate:
        hbm2ddl:
          auto: update
    entity-scan:
      packages: 'br.gov.cmb.plataforma.cmbrel.domain'

graphql:
  enabled: true
  #path: /graphql
  #graphiql:
  #  enabled: true
  #  path: /graphiql

rabbitmq:
  addresses:
    - ${cmbrel.rabbitmq.host:`IP:5672`}
  username: ${cmbrel.rabbitmq.username:cmbrel}
  password: ${cmbrel.rabbitmq.password:cmbrel}

标签: grailsspring-securityjwtmicronaut

解决方案


推荐阅读