小编gil*_*esB的帖子

@jsonview的杰克逊没有与jax-rs合作

我写了以下代码:

class A{
    public static class Public { }
}

// Entity class
public class B{
    @JsonView({A.Public.class}) 
    int a;
    int b;    
}

public class C{
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @JsonView({A.Public.class}) 
    public Bed getData(){
        // return object of B
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待输出为

{a: vlaue}
Run Code Online (Sandbox Code Playgroud)

但我收到了

{a: value, b: value}
Run Code Online (Sandbox Code Playgroud)

请告诉我这段代码有什么问题.

我使用的是杰克逊版本2.4.2

java jax-rs jackson

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

以编程方式验证和签署 Jar

我是这个话题的新手,因此我希望我使用正确的词汇。是否有可能在 Java self 中获得 Jarsigner 的可能性?

我需要有可能以编程方式执行以下操作:

  • 验证 jar 是否使用密钥库中的某个私钥签名
  • 如果罐子被验证:取消罐子的签名
  • 使用来自官方证书颁发机构的另一个私钥对 jar 进行签名,该私钥位于同一个或另一个密钥库中

在伪代码中,我想象的是这样的:

JarVerifier verifier = new JarVerifier(/*all needed parameters like the location of the keystore*/);
verifier.verify(jarFile); //returns a value which indicates the result (an Enum or an integer value)
Run Code Online (Sandbox Code Playgroud)

签署 jar 应该以类似的方式工作:

JarSigner signer = new JarSigner(/*all needed parameters like the location of the keystore, passwords, alias*/);
signer.sign(jarFile);
Run Code Online (Sandbox Code Playgroud)

我知道这是许多其他问题的重复,但我对他们的回答不满意。在大多数情况下,这些答案的解决方案是自写类、对从 OpenJDK 找到的类的修改或提示仍需要编写代码以及如何完成。这对我来说是不可接受的,因为它们没有得到维护(或者我必须自己编写和维护类),我对它们的正确性(特别是如果我必须自己编写代码)和许可证问题一无所知。

我不明白的是,Oracle 似乎没有提供简单的解决方案,尤其是因为它是一个如此关键的主题,错误可能会导致系统不安全。

java signing jar jarsigner

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

将大型 SVN 存储库迁移到 Git 失败内存不足异常

我正在尝试对一个非常大的 SVN 存储库进行 git svn 克隆。我已经使用git svn clone完整的分支、标签和维护的历史记录完成了早期的迁移,一切进展顺利。但这一次脚本运行一段时间后抛出错误:

libsvn: Out of memory - terminating application.18 [main] perl 13884 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump

我到处研究但找不到与此相关的任何内容。如果有人遇到类似的错误,我将不胜感激任何建议。

svn git git-svn

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

标签 统计

java ×2

git ×1

git-svn ×1

jackson ×1

jar ×1

jarsigner ×1

jax-rs ×1

signing ×1

svn ×1