小编And*_*ers的帖子

使用用户名使用UnboundID对Active Directory用户进行身份验证

我正在构建一个应用程序,我需要使用它连接到Active Directory UnboundID.使用一个例子,我设法将用户与他们distinguishedNamepassword.

但是,我想仅使用domainusername它进行身份验证,类似于在Windows中完成的操作.使用名为JXplorer它的工具浏览AD 似乎sAMAccountName可能是我需要的属性.但是,distinguishedName使用sAMAccountName 替换会导致AcceptSecurityContext错误.使用"uid=..."示例中显示的语法也产生了相同的错误.

有没有办法只使用域登录,username/ sAMAccountNamepassword.或者我是否需要通过AD搜索并找到distinguishedName我想要进行身份验证的用户,然后使用他们distinguishedNamepassword?绑定连接?

java ldap active-directory unboundid-ldap-sdk

4
推荐指数
2
解决办法
5687
查看次数

如何(联合国)将日期作为杰克逊的时间戳进行编组

我遇到麻烦(联合国)将java.util.Date对象编组到时间戳中.理想情况下,时间戳应采用UTC-0格式,而不是服务器的本地时区.虽然如果需要,我可以很容易地解决这个问题.

注意:我知道这里有几个关于堆栈溢出的类似主题,但是我遇到的每个人都要么过时(关于正在使用的API),要么与将Date对象序列化为字符串有关.

以下是我的POM文件的摘录:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.15</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

样本模型类:

public class PersonJSON {
    private Date birthDate;
}
Run Code Online (Sandbox Code Playgroud)

预期产出(假设出生日期为2015年2月1日00:00:00 UTC-0):

{"birthDate":1422748800000}
Run Code Online (Sandbox Code Playgroud)

当前输出:

{"birthDate":"2015-02-01"}
Run Code Online (Sandbox Code Playgroud)

是否可以解决这个问题(理想情况下使用注释)?

事实证明,错误是由Java.sql.Date到Java.util.Date的隐式转换引起的.转换不会抛出任何异常,并且sql.Date扩展了util.Date,因此逻辑上它应该可以工作,但事实并非如此.解决方案是从Java.sql.Date中提取时间戳,并将其用作Java.util.Date构造函数的输入.

如果您确实想要更改格式,假设您有一个有效的Java.util.Date对象,那么peeskillet列出的方法是正确的.

json jax-rs jersey jackson java.util.date

3
推荐指数
2
解决办法
7253
查看次数