【问题标题】:Spring security core and spring security crypto maven artifacts (duplicate classes)Spring security core 和 spring security crypto maven artifacts(重复类)
【发布时间】:2018-05-30 04:12:23
【问题描述】:

我正在使用 maven shade 插件(一个 uberjar)构建一个独立的 jar,我收到所有 spring-security-crypto 类的警告:

[WARNING] We have a duplicate org/springframework/security/crypto/bcrypt/BCrypt.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/bcrypt/BCryptPasswordEncoder.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Base64.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Hex.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/InvalidBase64CharacterException.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/package-info.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/codec/Utf8.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/encrypt/AesBytesEncryptor$1.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
[WARNING] We have a duplicate org/springframework/security/crypto/encrypt/AesBytesEncryptor.class in ***\.m2\repository\org\springframework\security\spring-security-crypto\3.1.0.RELEASE\spring-security-crypto-3.1.0.RELEASE.jar
...

我查看了 spring-security-core jar,发现它包含 spring-security-crypto 包含的所有类。此外,通过比较您看到的来源,它们是相同的。

我知道我可以忽略它,因为类是相同的,但是:

  1. 如果 spring-security-core 中的类没有更新,这可能会发生变化。
  2. 更重要的是我不明白为什么会这样?重要的是要注意 spring-security-core 本身对 spring-security-crypto 有编译依赖,这完全让我感到困惑。

希望有任何解释和解决方案。

【问题讨论】:

    标签: spring-security


    【解决方案1】:

    它是a bug in 3.1.0。从核心到加密不应该存在依赖关系。单独的加密 jar 仅用于其他一些不使用 Spring Security 的 Spring 项目。这是构建配置方式的副作用,它最终出现在核心 pom 中。

    只需将 Maven exclusion 添加到您的 pom 依赖项中以获取 spring-security-core 即可阻止它作为传递依赖项拉入 crpyto jar。

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 2019-09-25
      • 2011-04-22
      • 2010-12-20
      • 2013-05-23
      • 2017-11-09
      • 2016-05-06
      • 2017-06-20
      • 2012-11-04
      相关资源
      最近更新 更多