簡體   English   中英

在Gradle中擴展屬性會破壞LDAP配置

[英]Expanding Properties in Gradle Breaks LDAP Config

簡介:我正在嘗試訪問Java中的項目屬性(例如版本),在我讀過的所有地方都說我需要在build.gradle文件中擴展屬性。 一切都很好,但是我正在使用LDAP並在屬性文件中對其進行配置。 每當我嘗試擴展屬性時,都會收到LDAP錯誤49 52e(無效憑據),因此似乎Gradle處理該屬性的任何操作都會扭曲LDAP屬性,因此它們不再可用。

項目信息:我在下面概述了我認為適用的項目信息。 如果需要更多詳細信息來確定問題,請發表評論,然后我將其添加。

  • 語言:
    • Groovy 2.4
    • Java 8
  • 框架:
    • Spring Boot版本:1.3.1.RELEASE,帶有啟動程序POM
      • 包括spring-boot-starter-security
      • 包括spring-security-ldap
  • 生成工具:Gradle
    • 版本2.3
    • Spring Boot Gradle插件1.3.1.RELEASE
    • 應用的插件:
      • 時髦
      • 彈簧靴

構建信息:我已經在build.gradle文件中嘗試了幾種不同的配置來獲取版本,但是當我添加'processResources'塊時,運行應用程序時我將無法再訪問LDAP。 該應用程序可以在沒有'processResources'塊的情況下正常運行並進行身份驗證,但是一旦添加它,它便會運行,但是由於LDAP抱怨無效憑據,我無法訪問任何內容。 我嘗試了3種不同的擴展配置,並且所有行為都是這樣。

構建配置嘗試1:

processResources {
    expand(project.properties)
}

構建配置嘗試2:

processResources {
    filesMatching('**/*.properties') { expand(project.properties) }
}

此時,我想到我正在屬性文件中配置LDAP登錄,所以解決方案可能是完全避免使用屬性文件。 我發現您應該可以擴展所需的屬性,因此嘗試了以下內容。

構建配置嘗試3:

processResources {
    expand projectVersion: project.version
}

如前所述,以上所有嘗試均失敗,但我仍然遇到LDAP認證錯誤。 沒有'procesResources'塊的build.gradle文件似乎是保持LDAP滿意的唯一方法。

屬性信息:如前所述,我在屬性文件中配置了LDAP信息。 以下是相關屬性。

application.properties

spring.profiles.active=localdev
ldap.securitygroup=DEV
logout.path=
host.securePort=

如您所見,我使用的是localdev配置文件,因此下面包括了適用的屬性。 由於它包含敏感信息,因此我僅指定了屬性名稱,而不是其值。 我使用星號(*)表示提供了一個非空值。 (在上面的application.properties文件中,列出的幾個屬性的值確實為空):

application-localdev.properties

host.securePort=*
ldap.username=*
ldap.password=*
ldap.base=DC=*,DC=*,DC=*
ldap.roleSearchBase=OU=*,DC=*,DC=*,DC=*
ldap.defaultUrl=ldap://*
ldap.urls=ldap://* ldap://*

屬性完全沒有變化,在build.gradle文件中沒有processResources塊的情況下,所有屬性都可以正常工作,而當我添加它的這3個版本中的任何一個時,屬性都沒有變化。

我們非常感謝您提供任何幫助以幫助您解決此問題,如果需要更多信息,請告訴我,我將對其進行更新。

因此,一位同事給了我一個很好的建議,他說我可以檢查JAR文件中的屬性,以查看是否與最初指定的內容不同。

長話短說,當我在build.gradle文件中沒有processResources塊時,屬性不會更改,一切都會很愉快。 但是,當添加processResources時,將刪除ESCAPE字符,從而導致用戶名更改,因為其中包含了轉義字符。

我現在使用的解決方法是將轉義字符加倍,這對我來說似乎是一個技巧,因此,如果有更好的配置方法,請回復!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM