配置键 'authorizationUrl' 设置为 null 但应为 STRING]

Configuration key 'authorizationUrl' is set to null but expected STRING]

我在 play framwork 2.6 中使用 securesocial master 快照版本。错误说 'authorizationUrl' 期待字符串,这就是我所做的。如果我犯了任何错误,请帮忙。 下面是我的 securesocial.conf 文件

  securesocial {

  applicationHost=localhost
  applicationPort=9000

  onLoginGoTo = /home

  onLogoutGoTo = /login

  ssl = false

  sessionTimeOut = 60

  github {
    authorizationUrl = "https://github.com/login/oauth/authorize"
    accessTokenUrl = "https://github.com/login/oauth/access_token"
    clientId = 30032e485b22d8fb97f7
    clientSecret = 1b0d88c23ff56612970ac446e972035ccafbbc3e
  }

  userpass {
    withUserNameSupport = false
    sendWelcomeEmail = true
    enableGravatarSupport = true
    signupSkipLogin = true
    tokenDuration = 60
    tokenDeleteInterval = 5
    minimumPasswordLength = 8
    enableTokenJob = true
    hasher = bcrypt
  }
}

在您的 reference.conf 文件而不是 securesocial.conf 文件中更改它;正如您在问题中所述。

看起来在错误的更深处找到了解决方案。错误消息指向缓存中的一个 jar 文件 (.ivy2/cache/ws.securesocial/securesocial_2.12/jars/securesocial_2.12-master-SNAPSHOT.jar)。

我解压了这个文件,reference.conf 文件变得可见,oauth1Settingsoauth2Settings 的 authorizationUrl 等设置为 null。将这些更改为字符串就可以了,但这似乎是一个非常奇怪的修复。

conf 文件的最后一部分类似于下面的代码,其中字符串值最初是空值。

oauth1Settings {
    requestTokenUrl = null
    accessTokenUrl = ""
    authorizationUrl = ""
    consumerKey = null
    consumerSecret = null
}

# default settings for oauth2 providers
oauth2Settings {
    # these must always be provided for each provider
    authorizationUrl = ""
    accessTokenUrl = ""
    clientId = ""
    clientSecret = ""

    # optional
    scope = null

    # optional params maps
    authorizationUrlParams {}
    accessTokenUrlParams {}
}

错误是由 securesocial.conf 文件引起的。在文件中,我只包含 github 提供程序,而 reference.conf 文件需要添加所有提供程序。参考这个 link