0

概要: Java でプロジェクト プロパティ (バージョンなど) にアクセスしようとしていますが、読んだところどこでも、build.gradle ファイルでプロパティを展開する必要があると書かれています。それはすべてうまくいきますが、私は LDAP を使用しており、プロパティ ファイルで構成しています。プロパティを展開しようとすると、常に LDAP エラー 49 52e (Invalid Credentials) が発生するため、プロパティを処理するために Gradle が行うことは、LDAP プロパティをゆがめ、使用できなくなっているようです。

プロジェクト情報: 以下に該当するプロジェクト情報と思われるものを概説しました。問題を特定するためにさらに詳細が必要な場合は、コメントしてください。追加します。

  • 言語:
    • グルービー 2.4
    • Java 8
  • フレームワーク:
    • Spring Boot バージョン: スターター POM を使用した 1.3.1.RELEASE
      • 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 情報を構成しました。以下は、関連するプロパティです。

アプリケーションのプロパティ

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つのバージョンのいずれかを追加しても機能しませんでした.

このヘルプを理解するための支援をいただければ幸いです。さらに情報が必要な場合はお知らせください。これを更新します。

4

1 に答える 1