小编Ric*_*mon的帖子

如何在 ldap 目录中存储简单的名称值对

我正在为一系列共享相同用户的 Web 应用程序创建一个用户存储库 ldap 后端。我想在这个 ldap 位置存储偏好信息。这样,与用户相关的所有内容都保存在同一个地方,并且可以在所有应用程序之间共享。

我正在考虑这样的一般结构:

ou=人,dc=域,dc=com
  uid=jdoe,ou=People,dc=domain,dc=com
    ou=Preferences,uid=jdoe,dc=domain,dc=com
      ou=firstpreference,ou=Preferences,uid=jdoe,dc=domain,dc=com
        值:123
        值:456

我有几个问题:

  1. 用户条目下方的 jsut 是开始存储首选项的正确位置吗?这个条目应该是什么对象类?我正在尝试组织单位,但似乎不对。

  2. 为首选项存储名称值对的最佳方法是什么?在这里,我最好的客人是在具有名称的首选项下方创建一个条目,并在其下方创建值。这样我就可以考虑多个值。这些条目的正确 objectClass 应该是什么?

我正在使用 OpenLDAP 并且不想更改它附带的模式。有没有办法使用可用的模式进行设置?

ldap preferences openldap

5
推荐指数
1
解决办法
2417
查看次数

在perl中收到任何信号时,睡眠会中断吗?

我有这个简单的perl守护进程:

#!/usr/bin/perl

use strict;
use warnings;
use Proc::Daemon;

Proc::Daemon::Init;

my $continue = 1;

$SIG{TERM} = sub { $continue = 0 };
$SIG{USR1} = sub { do_process(1) };

# basic daemon                                                                                    

boxesd_log("started boxesd");

while ($continue) {
    do_process(0);
    sleep(30);
}

boxesd_log("finished boxesd");

exit(0);

# required subroutines                                                                            

sub do_process {
    my ($notified) = @_;
    boxesd_log("doing it $notified");
}
Run Code Online (Sandbox Code Playgroud)

但有些事情是行不通的.

守护程序启动时,它会每30秒记录一次,而不会发出预期的通知:

Sat Oct 30 21:05:47 2010 doing it 0
Sat Oct 30 21:06:17 2010 doing it 0
Sat Oct 30 21:06:47 2010 doing it …

linux perl signals daemon

5
推荐指数
1
解决办法
4716
查看次数

将名称空间声明从有效负载移动到轴创建的Web服务上的信封

我刚刚创建了一个使用axis和eclipse的Web服务客户端,它不能与我的Web服务提供者一起使用.Web服务客户端创建的消息如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope 
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <enviarMensajeRequest 
       xmlns="http://www.springframework.org/spring-ws/Imk-Zenkiu-Services">
      <usuario>someuser</usuario>
      <clave>somepassword</clave>
      <mensaje>somemessage</mensaje>
      <contacto>
        <buzonSMS>somenumber</buzonSMS>
        <primerNombre>somefirstname</primerNombre>
        <primerApellido>somelastname</primerApellido>
      </contacto>
    </enviarMensajeRequest>
  </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我发现该消息没有错,但我的提供者坚持认为该消息应该是:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope 
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:imk="http://www.springframework.org/spring-ws/Imk-Zenkiu-Services">
  <soapenv:Body>
     <imk:enviarMensajeRequest>
        <imk:usuario>someuser</imk:usuario>
        <imk:clave>somepassword</imk:clave>
        <imk:mensaje>somemessage</imk:mensaje>
        <imk:contacto>
           <imk:buzonSMS>somenumber</imk:buzonSMS>
           <imk:primerNombre>somefirstname</imk:primerNombre>
           <imk:primerApellido>somelastname</imk:primerApellido>
        </imk:contacto>
     </imk:enviarMensajeRequest>
  </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

注意命名空间声明从参数移动enviarMensajeRequest到参数soapenv:Envelope和限定条件imk:.我在这个过程中尝试了很多组合,但我的web服务,wsdl和xml知识非常有限.提供者说他们无法告诉我这件事.有任何想法吗?也许我可以使用不同的框架来创建正确的客户端.

axis web-services

4
推荐指数
1
解决办法
5035
查看次数

收听tomcat领域认证事件

我需要知道tomcat何时接受针对给定上下文使用域认证的登录.我一直在寻找可用的可用侦听器(ServletContextListener和ServletContextAttributeListener),但无法弄清楚如何在登录时收到通知.对于多个上下文使用tomcat单点登录时,这也应该有效.有任何想法吗?

java authentication tomcat

2
推荐指数
1
解决办法
2400
查看次数

在不知道模块名称但知道文件名的情况下加载和使用perl模块

我一直在使用modulino perl模式,并且想要在不知道包名称的情况下加载一个,并且只知道它所在的文件.我正在寻找可以像这样使用的东西:

eval {
  my $file = "some-file-name-in-the-hierarchy-unrelated-to-package-name";
  my $module = something($file);
  $module->sub1();
};
Run Code Online (Sandbox Code Playgroud)

something是关键.不,require或者use之后我需要模块名称.我是否必须阅读$file并解析其中的package名称才能使用它?我可以肯定有更好的方法.perl总是存在.

perl modulino

2
推荐指数
1
解决办法
232
查看次数

如何使运行在x:00 x:15 x:30和x:45的线程在2:00做不同的事情

我有一个计时器线程,需要在一天中的特定时刻运行,以便与数据库进行增量复制.现在它在小时,小时15分钟,小时30分钟和小时45分钟之间运行.这是我的代码,它正常工作:

public class TimerRunner implements Runnable {

    private static final Semaphore lock = new Semaphore(1);

    private static final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();

    public static void initialize() {
        long delay = getDelay();
        executor.schedule(new TimerRunner(), delay, TimeUnit.SECONDS);
    }

    public static void destroy() {
        executor.shutdownNow();
    }

    private static long getDelay() {
        Calendar now = Calendar.getInstance();
        long p = 15 * 60; // run at 00, 15, 30 and 45 minutes past the hour
        long second = now.get(Calendar.MINUTE) * 60 + now.get(Calendar.SECOND);
        return p …
Run Code Online (Sandbox Code Playgroud)

java multithreading timer

1
推荐指数
1
解决办法
302
查看次数