Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Java 嵌入弹簧的ApacheDS_Java_Spring_Spring Security_Apacheds - Fatal编程技术网

Java 嵌入弹簧的ApacheDS

Java 嵌入弹簧的ApacheDS,java,spring,spring-security,apacheds,Java,Spring,Spring Security,Apacheds,根据Spring文档,可以配置嵌入式ApacheDS服务器,这使得测试变得容易。 为什么不在部署中使用嵌入spring的ApacheDS?这有什么限制吗 我还注意到它正在写入temp目录/tmp/apacheds-spring-security。有没有办法配置它?我已经参与了一个项目,其中在测试服务器的开发和部署中使用了嵌入式ApacheDS服务器。有两个小问题: 如果您不正确地停止应用程序,例如通过debug模式终止或通过kill-9,则需要手动清理/tmp/apacheds-spring安全

根据Spring文档,可以配置嵌入式ApacheDS服务器,这使得测试变得容易。 为什么不在部署中使用嵌入spring的ApacheDS?这有什么限制吗


我还注意到它正在写入temp目录/tmp/apacheds-spring-security。有没有办法配置它?

我已经参与了一个项目,其中在测试服务器的开发和部署中使用了嵌入式ApacheDS服务器。有两个小问题:

如果您不正确地停止应用程序,例如通过debug模式终止或通过kill-9,则需要手动清理/tmp/apacheds-spring安全目录。如果您保留临时文件,则在下次加载应用程序时将引发运行时异常。 我们没有找到如何更改默认临时目录/tmp/apacheds-spring-security。 希望这有帮助

编辑。
对于第一个问题,我最终得到了一个servlet api侦听器。它在Spring上下文侦听器之前声明,以确保在Spring和ApacheDS之前执行。此侦听器负责检查和清理/tmp/apacheds-spring-security。也许这不是最优雅的解决方案,但它确实有效。最好在ApacheDS中为这种情况设置一个参数,比如-dapachedCleanupWorkDiratStutup=true。

对于您提到的第一项,我还没有找到解决方案。但是对于更改apacheds temp目录,我找到了一个解决方案:您可以使用-DapacheDSWorkDir=来运行服务器,这是我遇到的第一个servlet api侦听器问题。它在Spring上下文侦听器之前声明,以确保在Spring和ApacheDS之前执行。此侦听器负责检查和清理/tmp/apacheds-spring-security。非常感谢您提供apacheDSWorkDir参数!在我看来,真正的问题是它不知道如何从现有配置开始。这意味着每次启动,关于apacheDS中用户的所有更改都会被删除,您必须重新创建所有更改。也就是说,除非您编写自己的持久性并复制所有更改,否则您不能依赖它进行部署,但这有点遗漏了一点,我认为您可以像在应用程序不修改LDAP内容的情况下那样使用它进行部署。例如,LDAP内容从sturtup的LDIF文件加载,然后仅用于身份验证/授权。如果您想在这种情况下修改LDAP内容,那么您需要修改LDIF文件并重新启动ApacheDS以考虑更改。它只适用于静态身份验证,即关闭用户和角色集。但是,如果您的用户是静态的,那么使用ldap服务器有什么意义呢?