【问题标题】:How to set HTTPS authenticate header in Jython using Java classes如何使用 Java 类在 Jython 中设置 HTTPS 身份验证标头
【发布时间】:2021-05-04 18:03:20
【问题描述】:

我有以下代码可以按原样工作。 我需要在标题中设置 HTTPS authentication。 为保持问题清晰,请接受以下事实,即无法使用 python requests 模块,因为供应商为包装 Jython 运行时所做的工作。 Java 类在 Java 8 中。

  def getAllSafes (self, authenticationBaseURL, sessionToken):
      wwJO = Json.createObjectBuilder().build()
      offset = 0
      limit = 10
      sort = "asc" # ascending
      includeAccounts = "true"
      extendedDetails = "true"
      
      get_allSafes_url = "https://" + authenticationBaseURL + "/PasswordVault/api/Safes?" + "includeAccounts=" + includeAccounts + "&offset=" + str(offset) + "&limit=" + str(limit) + "&sort=" + sort + "&extendedDetails=" + extendedDetails
      wwJO = Json.createObjectBuilder().build()

      vault_url = URL(get_allSafes_url)
      isr = InputStreamReader(vault_url.openStream())
      JsonReader = Json.createReader(isr)

      print JsonReader.readObject()
      JsonReader.close()
      return "_Determined at run time_"
      

【问题讨论】:

  • 是的,需要授权标头。我不能使用 urllib2,因为 cacert 文件参数直到版本 2.7.0 之后才被包含在内。我被困在 2.7.0 上,无法更新,因为供应商将 jython 嵌入到他们的产品中。

标签: java https jython


【解决方案1】:

试试这个sn-p代码来设置授权标头(你需要提供授权值):

    vault_url = URL(get_allSafes_url)
    connection = vault_url.openConnection()
    connection.setRequestProperty("Authorization", authorizationvalue)
    isr = InputStreamReader(connection.getInputStream())

【讨论】:

  • 不工作。我得到以下。结果如下输出... wwMap.size():14 wwHeader:None wwHeader:X-Content-Type-Options wwHeader:Pragma wwHeader:Date wwHeader:X-UA-Compatible wwHeader:Strict-Transport-Security wwHeader:Access-Control -Expose-Headers wwHeader:Cache-Control wwHeader:Set-Cookie wwHeader:X-FRAME-Options wwHeader:Expires wwHeader:X-XSS-Protection wwHeader:Content-Length wwHeader:Content-Type
  • 我的错。无法返回“身份验证”标头,请参阅。 stackoverflow.com/questions/22726697/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-28
  • 2023-03-09
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
相关资源
最近更新 更多