标签: openjdk-11

OpenJDK11:安全提供程序设置

在 java 8 中设置安全提供程序我只需要将提供程序添加到 java.security 文件并将提供程序外部库添加到 lib/ext。由于在其他版本中不允许使用外部库,如何在 jdk11 上添加提供程序?

到目前为止,我尝试将提供程序添加到 conf/security 文件夹中的 java.security 文件中。

security.provider.1=nCipherKM
Run Code Online (Sandbox Code Playgroud)

我在列表顶部插入了新的提供程序,但是当我尝试 .getInstance("providerExample") 时,我仍然收到 NoSuchProviderException。

java.security.NoSuchProvidIrException: no such provider: nCipherKM
Run Code Online (Sandbox Code Playgroud)

lib jar 本身,我不知道我必须把它放在哪里,或者我怎样才能包括它才能被识别。如果我创建一个 lib/ext 文件夹,他说要使用 -classpath ,但对此也一无所知。

谢谢

编辑:为了完成我的问题,我忘了提到我使用 thorntail 和 maven 3.6.1 来构建项目。我得到的错误与这一行有关:

KeyStore.getInstance("ncipher.sworld", "nCipherKM");
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,当我有 java 8 时,我只需要将 security.provider 添加到 java.security 并将 nCipherKM.jar 添加到 $JAVA_HOME/lib/ext 文件夹。

java java-11 openjdk-11

5
推荐指数
0
解决办法
1347
查看次数

JDK 11 HttpClient:BindException:无法分配请求的地址

我正在使用 JDK 11 附带的新 HttpClient 发出许多请求(向 Github 的 API,但我认为这无关紧要),尤其是 GET。

对于每个请求,我构建并使用一个 HttpClient,如下所示:

final ExecutorService executor = Executors.newSingleThreadExecutor();
final HttpClient client = client = HttpClient
    .newBuilder()
    .followRedirects(HttpClient.Redirect.NORMAL)
    .connectTimeout(Duration.ofSeconds(10))
    .executor(executor)
    .build();
try {
   //send request and return parsed response;
} finally {
   //manually close the specified executor because HttpClient doesn't implement Closeable,
   //so I'm not sure when it will release resources.
   executor.shutdownNow();
}
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,除了时不时地,我收到以下异常,并且请求将不再有效,直到我重新启动应用程序:

Caused by: java.net.ConnectException: Cannot assign requested address
...
Caused by: java.net.BindException: Cannot assign requested address
    at java.base/sun.nio.ch.Net.connect0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

http java-http-client java-11 openjdk-11

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

依赖关系未解决:DocumentBuilderFactory 类需要 openJDK 11 中 javax.xml.parsers 的依赖关系

故事: 我使用 JDK8 和 IVY 作为 ANT Builder 的依赖管理器。一切都很好。我的DocumentBuilderFactory 班级能够找到javax.xml.parsers依赖关系。

问题: 现在我转移到 Open JDK11,现在DocumentBuilderFactory无法找到javax.xml.parsers依赖项。

Eclipse 给了我导入建议,但是当我导入时没有任何反应,并且导入已经表示导入 javax.xml.parsers.DocumentBuilder 无法 像这样解析: 导入显示依赖关系未解决

我需要什么解决方案: 我需要 Open JDK 11 的 IVY 依赖项来 javax.xml.parsers支持DocumentBuilderFactory

截图我的类需要依赖:(

ivy openjdk-11

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

SpringBoot OAuth2 示例应用程序

应用程序.yml

server:
  port: 8082

spring:
  security:
    oauth2:
      client:
        registration:
          custom-client:
            client-id: R2dpxQ3vPrtfgF72
            client-secret: fDw7Mpkk5czHNuSRtmhGmAGL42CaxQB9
            client-name: Auth Server
            scope: user_info
            provider: custom-provider
            redirect-uri-template: http://localhost:8082/login/oauth2/code/
            client-authentication-method: basic
            authorization-grant-type: authorization_code
        provider:
          custom-provider:
            token-uri: http://localhost:8081/auth/oauth/token
            authorization-uri: http://localhost:8081/auth/oauth/authorize
            user-info-uri: http://localhost:8081/auth/user/me
            user-name-attribute: name
Run Code Online (Sandbox Code Playgroud)

WebSecurityConfigurerAdapter 的扩展

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {

        http.antMatcher("/**") //
                .authorizeRequests()//
                .antMatchers("/", "/login**")//
                .permitAll() //
                .anyRequest() //
                .authenticated() //
                .and() //
                .oauth2Login();

    }

}
Run Code Online (Sandbox Code Playgroud)

依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sun.mail</groupId> …
Run Code Online (Sandbox Code Playgroud)

client-server oauth-2.0 spring-boot openjdk-11

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

jaxb:找不到 xjc.sh java.activation

我已经下载了 jaxb-ri:

\n
$ tree -L 1\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bin\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docs\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 License.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 mod\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 samples\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ThirdPartyLicenseReadme.txt\n
Run Code Online (Sandbox Code Playgroud)\n

我的java版本是:

\n
$ java -version\nopenjdk version "11.0.7" 2020-04-14\n
Run Code Online (Sandbox Code Playgroud)\n

然而,当我尝试执行时xjc.sh -help,我收到此错误消息:

\n
Java major version: 11\njava.lang.module.FindException: Module java.activation not found, required by com.sun.istack.runtime\n    at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)\n    at java.base/java.lang.module.Resolver.resolve(Resolver.java:191)\n    at java.base/java.lang.module.Resolver.resolve(Resolver.java:140)\n    at java.base/java.lang.module.Configuration.resolveAndBind(Configuration.java:315)\n    at java.base/java.lang.module.ModuleDescriptor$1.resolveAndBind(ModuleDescriptor.java:2693)\n    at java.base/jdk.internal.module.ModuleBootstrap.boot(ModuleBootstrap.java:354)\n    at java.base/java.lang.ClassLoader.initializeClassLoaders(ClassLoader.java:211)\n    at java.base/java.lang.Thread.initialize(Thread.java:430)\n    at java.base/java.lang.Thread.<init>(Thread.java:155)\n
Run Code Online (Sandbox Code Playgroud)\n

java jaxb java-platform-module-system java-11 openjdk-11

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

Alpine 使用 jdk11 作为基础 docker 镜像

我有一个Dockerfile由许多服务使用的基础,如下所示:

FROM adoptopenjdk/openjdk11:jdk-11.0.11_9-alpine-slim
Run Code Online (Sandbox Code Playgroud)

Linux Alpine有一些安全修复程序,我想将它们包含在我的基础映像中。在AdoptOpenJDK 的官方页面上寻找新图像时,我发现这些标签自 2021 年 8 月 1 日起已被弃用,取而代之的是Eclipse Temurin项目。

Eclipse Temurin 没有基于 alpine 的 jdk11 镜像。难道我...

  1. 使用 Temurin 的 11-jdk-focal?
  2. 构建我自己的 alpine 镜像并添加 jdk11 到其中?
  3. 使用任何其他替代提供商?

参考:

java eclipse docker alpine-linux openjdk-11

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

Jdk11 支持哪些密码套件算法以及哪一种最适合与 TLSv1.2 一起使用

我正在 JDK11 环境中运行 JDK8 应用程序。我正在使用 TLSv1.2 和 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 密码套件算法,我怀疑它在 JDK11 中不受支持或禁用。有 jvm 支持的密码列表,请参阅https://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html 另外,如果您在这里看到有人列出了支持的密码jdk 至 jdk1.8 https://developer.ibm.com/answers/questions/301898/where-i-can-find-list-of-cipher-suites-that-suppor/

但我想知道jdk11中支持/启用/禁用哪种密码套件算法。我正在使用 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 密码算法,但是当我尝试在 jdk 11 运行时环境中运行我的应用程序时,我收到 SSLHandshakeException(Getting javax.net.ssl.SSLHandshakeException in JDK11)。这就是为什么我试图改变我的密码套件算法,并且同样我想知道我可以在 JDK11 环境中使用哪种算法。如果我也了解 jdk11 和 jdk8 都支持的密码,那将会很有帮助。请帮我解决一下。

谢谢。

encryption rc4-cipher tls1.2 java-11 openjdk-11

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

spring boot 2执行器 jvm.gc.memory.alulated 指标

我正在使用 Spring Boot 2.2.5 并通过 Spring Boot Actuator 和 Grafana 监控我的应用程序指标。

我的应用程序是用Docker(OpenJdk11)打包的,并配置了4GB内存

我的 gc 暂停时间很长,大约需要 1-2 秒,并且它与高jvm.gc.memory.allocated相关。

jvm.gc.memory.allocated 指标有时会达到30GB

谁能解释jvm.gc.memory.alulated指标?这是什么意思 ?

garbage-collection memory-management spring-boot spring-boot-actuator openjdk-11

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

如何限制 Open JDK 11 上的非堆大小

我们正在 AWS 中运行基于 openjdk:11-slim 的 docker 容器。我们通常使用两种实例类型。一个有 1G,另一个有 2G 可用内存。在 1G 实例上,我开始使用这些参数来限制堆大小: -XX:MaxRAM=1g -XX:MaxRAMPercentage=30

我也想限制非堆。它是一个 Spring Boot 应用程序,在 Spring Boot Admin 中它当前看起来像这样(默认运行):

在此输入图像描述

正如您所看到的,1.33 GB Max 甚至无法工作,因为总内存只有 1G。理想情况下,非堆也应限制在 30% 以内。我可以使用哪些 JVM 参数来调整非堆内存的大小?

我进行了一些调查,在这个实例中,大约 1G 总 RAM 的 30% 已用于非应用程序相关进程(第三列是总内存的百分比)。

3663 root      4.6 /usr/bin/python2.7 /usr/bin/aws logs push --config-file /etc/awslogs/awslogs.conf --additional-configs-dir /etc/awslogs/config
 3430 root      4.1 /usr/bin/dockerd --storage-driver devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true --storage-opt dm.fs=ext4 --storage-opt dm.basesize=100G
 2949 healthd   3.5 puma 2.11.1 (tcp://127.0.0.1:22221) [healthd]
 3021 root      2.6 /usr/bin/python2.7 /opt/aws/bin/cfn-hup
 3437 root      2.2 …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-arguments openjdk-11

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

OpenJDK 11 支持 Java Flight Recorder 吗?

关注这篇文章之后:

\n
\n

openjdk 11 原生支持 jfr

\n
\n

OpenJDK 11 的功能列表也证实了这一点

\n
\n

328:飞行记录器

\n
\n

然而,从这篇 DZone 文章中,关于使用 JFR 链接选项-XX:+UnlockCommercialFeatures

\n
\n

OpenJDK 无法识别此选项\xe2\x80\x99

\n
\n

当我尝试找前任时。与摇篮:./gradlew clean -Dorg.gradle.jvmargs="-XX:+UnlockCommercialFeatures"我明白了

\n
\n

进程命令行:C:\\Program\nFiles\\AdoptOpenJDK\\jdk-11.0.11.9-hotspot\\bin\\java.exe\n-XX:+UnlockCommercialFeatures (...)

\n

无法识别的 VM 选项“UnlockCommercialFeatures”

\n
\n

我在这里缺少什么?

\n

java jfr openjdk-11

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