Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Gradle中扩展属性会破坏LDAP配置_Gradle_Properties_Spring Boot_Ldap_Project Properties - Fatal编程技术网

在Gradle中扩展属性会破坏LDAP配置

在Gradle中扩展属性会破坏LDAP配置,gradle,properties,spring-boot,ldap,project-properties,Gradle,Properties,Spring Boot,Ldap,Project Properties,摘要:我试图访问Java中的项目属性(如版本),我读到的所有地方都说我需要在build.gradle文件中展开属性。这一切都很好,但我正在使用LDAP,并在我的属性文件中配置它。每当我尝试扩展属性时,就会出现LDAP错误49 52e(无效凭据),因此Gradle处理属性的任何操作都会扭曲LDAP属性,使它们不再可用 项目信息: 我在下面概述了我认为适用的项目信息。如果有进一步的细节需要确定的问题,评论,我会添加他们 语言: Groovy 2.4 爪哇8 框架: Spring Boot版本

摘要:我试图访问Java中的项目属性(如版本),我读到的所有地方都说我需要在build.gradle文件中展开属性。这一切都很好,但我正在使用LDAP,并在我的属性文件中配置它。每当我尝试扩展属性时,就会出现LDAP错误49 52e(无效凭据),因此Gradle处理属性的任何操作都会扭曲LDAP属性,使它们不再可用

项目信息: 我在下面概述了我认为适用的项目信息。如果有进一步的细节需要确定的问题,评论,我会添加他们

  • 语言:
    • Groovy 2.4
    • 爪哇8
  • 框架:
    • Spring Boot版本:1.3.1。使用starter POM发布
      • 弹簧启动启动安全包括在内
      • 包括spring安全ldap
  • 构建工具:Gradle
    • 版本2.3
    • Spring Boot Gradle插件1.3.1.0版本
    • 应用插件:
      • 棒极了
      • 弹簧靴
构建信息:我在Build.gradle文件中尝试了几种不同的配置来访问该版本,但在添加“processResources”块时,我无法再在运行应用程序时访问LDAP。应用程序在没有“processResources”块的情况下运行并进行身份验证,但只要我添加它,它就会运行,但由于LDAP抱怨凭据无效,我无法访问任何内容。我尝试了3种不同的扩展配置,都是这样

生成配置尝试1:

生成配置尝试2:

此时,我突然想到,我正在属性文件中配置LDAP登录,所以可能解决方案是完全避免属性文件。我发现你可以扩展你需要的属性,所以我尝试了以下方法

构建配置尝试3:

如前所述,上述所有尝试都失败了,我仍然得到了每个尝试的LDAP身份验证错误。没有“procesResources”块的build.gradle文件似乎是让LDAP满意的唯一方法

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

应用程序属性

如您所见,我使用的是localdev配置文件,因此我在下面包含了其中的适用属性。因为它包含敏感信息,所以我只指定了属性名,而没有指定它们的值。我使用了星号(*)表示提供了一个非空值。(在上面的application.properties文件中,列出的几个属性的值确实为空):

application-localdev.properties

属性一点也没有改变,只是在build.gradle文件中没有processResources块的情况下工作,然后在我添加了这3个版本中的任何一个时都没有改变


非常感谢您提供的任何帮助,如果需要进一步的信息,请告诉我,我会更新此信息。

因此,一位同事给了我一个很好的提示,说我可以检查JAR文件中的属性,看看是否有与最初指定的不同的内容

长话短说,当build.gradle文件中没有processResources块时,属性不会改变,一切都很好。但是,当添加processResources时,转义字符被删除,导致用户名更改,因为我在其中有转义字符

我现在使用的解决方法是将转义字符加倍,这对我来说似乎是一种攻击,所以如果有更好的方法来配置它,请回复

processResources {
    expand(project.properties)
}
processResources {
    filesMatching('**/*.properties') { expand(project.properties) }
}
processResources {
    expand projectVersion: project.version
}
spring.profiles.active=localdev
ldap.securitygroup=DEV
logout.path=
host.securePort=
host.securePort=*
ldap.username=*
ldap.password=*
ldap.base=DC=*,DC=*,DC=*
ldap.roleSearchBase=OU=*,DC=*,DC=*,DC=*
ldap.defaultUrl=ldap://*
ldap.urls=ldap://* ldap://*