繁体   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