Saya menjalankan spring boot 3.2.1 dengan pelayan kunci kunci terbenam
<dependency> <groupid>org.pac4j</groupid> <artifactid>jakartaee-pac4j</artifactid> <version>8.0.0</version> </dependency> <dependency> <groupid>org.pac4j</groupid> <artifactid>pac4j-oidc</artifactid> <version>6.0.1</version> </dependency>
Tiada penyulitan diperlukan, semuanya berfungsi dengan baik, pac4j mengendalikan perkara dengan baik. Apabila saya membawa masuk ssl menggunakan ssl bundle, aplikasi web berfungsi dengan baik (https) dan interaksi dengan pelayan keycloak terbenam berfungsi dengan baik, termasuk panggilan berikut: https://localhost:8888/auth/realms/master/.well-known/openid-configuration Apabila dibuat melalui pelayar web pada mesin yang sama. Walau bagaimanapun, semasa menjalankan proses pengesahan, pac4j nampaknya menimbulkan ralat berikut:
org.pac4j.core.exception.TechnicalException: Error getting URL resource at org.pac4j.core.resource.SpringResourceHelper.getResourceInputStream(SpringResourceHelper.java:74) at org.pac4j.oidc.metadata.OidcOpMetadataResolver.retrieveMetadata(OidcOpMetadataResolver.java:89) at org.pac4j.oidc.metadata.OidcOpMetadataResolver.internalLoad(OidcOpMetadataResolver.java:76) at org.pac4j.core.resource.SpringResourceLoader.load(SpringResourceLoader.java:50) at org.pac4j.oidc.config.OidcConfiguration.findPkceMethod(OidcConfiguration.java:285) at org.pac4j.oidc.redirect.OidcRedirectionActionBuilder.addStateAndNonceParameters(OidcRedirectionActionBuilder.java:115) at org.pac4j.oidc.redirect.OidcRedirectionActionBuilder.getRedirectionAction(OidcRedirectionActionBuilder.java:58) at org.pac4j.core.client.IndirectClient.getRedirectionAction(IndirectClient.java:136) at org.pac4j.core.engine.DefaultSecurityLogic.redirectToIdentityProvider(DefaultSecurityLogic.java:240) at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:160) at com.ebremer.server.MyCustomSecurityFilter.internalFilter(MyCustomSecurityFilter.java:79)
Saya menambah trustallcertificates dan trustallhostname pada permulaan sistem, tetapi masih tiada kesan.
Anda perlu membuat kedai amanah dengan sijil yang ditandatangani sendiri dan menyerahkannya kepada JVM: https://docs.oracle.com/cd/E29585_01/PlatformServices.61x/security/src/ csec_ssl_jsp_start_server.html
Atas ialah kandungan terperinci Pac4J menghadapi masalah penyulitan dengan sijil yang ditandatangani sendiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!