Peter,

As I understand you are suggesting to use direct connection to the database.
The servlet needs a JNDI datasource, and the question is about
configuring that datasource in tomcat.
As I can modify the servlet, I could choose to set up hibernate in other
ways, but I would like to separate the concerns of providing the
database and using it between the operations staff and development.
And JNDI is exactly for that.

On 10/22/19 2:27 PM, logo wrote:
> Arpad,
>
> have you tried sth like this:
>
>         StringBuffer sb = new
> StringBuffer("jdbc:postgresql://infra.kodekonveyor.com:5432/users?useSSL=true&useUnicode=true&characterEncoding=UTF-8&");
>         sb.append("user=market&password=<pw>&");
>        
> sb.append("clientCertificateKeyStoreUrl=file:////var/lib/tomcat9/.postgresql/client.jks&");
>         sb.append("clientCertificateKeyStorePassword=changeit");
>
>         Connection c = DriverManager.getConnection(sb.toString());
>
> and convert the pem certificate to JKS/P12 ? I have this working in
> mysql...
>
> Peter
>
> Am 2019-10-22 12:56, schrieb Magosányi Árpád:
>> Hi!
>>
>> Anyone have a postgresql jndi datasource with certificate authentication
>> working?
>>
>> I have the following in context.xml:
>>
>>         <Resource name="jdbc/users" auth="Container"
>>           type="javax.sql.DataSource"
>> driverClassName="org.postgresql.Driver"
>>          
>> url="jdbc:postgresql://infra.kodekonveyor.com:5432/users?ssl=true&amp;sslmode=verify-ca"
>>
>>           username="market" maxTotal="20" maxIdle="10"
>>           maxWaitMillis="-1"/>
>>
>> I have this in ~tomcat/.postgresql:
>>
>> root@market:/var/lib/tomcat9/.postgresql# ls -lL
>> total 11
>> -rw-r--r-- 1 root   root 4597 Oct 21 12:49 postgresql.crt
>> -r-------- 1 tomcat root 1329 Oct 21 17:40 postgresql.pk8
>> -rw-r--r-- 1 root   root 1493 Oct 21 12:49 root.crt
>>
>> where the crt file is a pem client certificate, root.crt is the ca cert,
>> and pk8 is the client key in der pkcs-8 format.
>>
>> The logs:
>>
>>      NOTE: Picked up JDK_JAVA_OPTIONS: 
>> --add-opens=java.base/java.lang=ALL-UNNAMED
>> --add-opens=java.base/java.io=ALL-UNNAMED
>> --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
>>      Server version name:   Apache Tomcat/9.0.16 (Ubuntu)
>>      Server built:          Sep 11 2019 19:47:51 UTC
>>      Server version number: 9.0.16.0
>>      OS Name:               Linux
>>      OS Version:            4.15.0-65-generic
>>      Architecture:          amd64
>>      Java Home:             /usr/lib/jvm/java-11-openjdk-amd64
>>      JVM Version:           11.0.4+11-post-Ubuntu-1ubuntu218.04.3
>>      JVM Vendor:            Ubuntu
>>      CATALINA_BASE:         /var/lib/tomcat9
>>      CATALINA_HOME:         /usr/share/tomcat9
>>      Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
>>      Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
>>      Command line argument:
>> --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
>>      Command line argument:
>> -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties
>>      Command line argument:
>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
>>      Command line argument: -Djava.awt.headless=true
>>      Command line argument: -XX:+UseG1GC
>>      Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
>>      Command line argument:
>> -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
>>      Command line argument:
>> -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
>>      Command line argument: -Dignore.endorsed.dirs=
>>      Command line argument: -Dcatalina.base=/var/lib/tomcat9
>>      Command line argument: -Dcatalina.home=/usr/share/tomcat9
>>      Command line argument: -Djava.io.tmpdir=/tmp
>>      Loaded APR based Apache Tomcat Native library [1.2.21] using APR
>> version [1.6.3].
>>      APR capabilities: IPv6 [true], sendfile [true], accept filters
>> [false], random [true].
>>      APR/OpenSSL configuration: useAprConnector [false], useOpenSSL
>> [true]
>>      OpenSSL successfully initialized [OpenSSL 1.1.1  11 Sep 2018]
>>      Initializing ProtocolHandler ["ajp-nio-8009"]
>>      Server initialization in [1,859] milliseconds
>>      Starting service [Catalina]
>>      Starting Servlet engine: [Apache Tomcat/9.0.16 (Ubuntu)]
>>      Deploying web application archive
>> [/var/lib/tomcat9/webapps/market.war]
>>      SLF4J: Class path contains multiple SLF4J bindings.
>>      SLF4J: Found binding in
>> [jar:file:/var/lib/tomcat9/webapps/market/WEB-INF/lib/slf4j-simple-1.7.24.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>
>>      SLF4J: Found binding in
>> [jar:file:/var/lib/tomcat9/webapps/market/WEB-INF/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>>
>>      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>> explanation.
>>      SLF4J: Actual binding is of type
>> [org.slf4j.impl.SimpleLoggerFactory]
>>      3 Spring WebApplicationInitializers detected on classpath
>>      onStartup
>>      getContext
>>      getRootConfigClasses
>>      [main] INFO com.kodekonveyor.market.WebInitializer -
>> getRootConfigClasses
>>      getServletConfigClasses
>>      [main] INFO com.kodekonveyor.market.WebInitializer -
>> getServletConfigClasses
>>      getServletMappings
>>      [main] INFO com.kodekonveyor.market.WebInitializer -
>> getServletMappings
>>      At least one JAR was scanned for TLDs yet contained no TLDs. Enable
>> debug logging for this logger for a complete list of JARs that were
>> scanned but no TLDs were found in them. Skipping unneeded JARs during
>> scanning can improve startup time and JSP compilation time.
>>      Initializing Spring root WebApplicationContext
>>      [main] INFO org.springframework.web.context.ContextLoader - Root
>> WebApplicationContext: initialization started
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Bootstrapping Spring Data repositories in DEFAULT mode.
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Finished Spring Data repository scanning in 198ms. Found 1 repository
>> interfaces.
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Bootstrapping Spring Data repositories in DEFAULT mode.
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Finished Spring Data repository scanning in 35ms. Found 1 repository
>> interfaces.
>>      [main] INFO
>> org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker
>>
>> - Bean
>> 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration'
>>
>> of type
>> [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration]
>>
>> is not eligible for getting processed by all BeanPostProcessors (for
>> example: not eligible for auto-proxying)
>>      [main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204:
>> Processing PersistenceUnitInfo [name: default]
>>      [main] INFO org.hibernate.Version - HHH000412: Hibernate Core
>> {5.4.6.Final}
>>      [main] INFO org.hibernate.annotations.common.Version - HCANN000001:
>> Hibernate Commons Annotations {5.1.0.Final}
>>      [main] WARN
>> org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator -
>> HHH000342: Could not obtain connection to query metadata : Cannot create
>> PoolableConnectionFactory (Could not find a java cryptographic
>> algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
>>      [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using
>> dialect: org.hibernate.dialect.PostgreSQLDialect
>>      [main] INFO
>> org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator
>>
>> - HHH000490: Using JtaPlatform implementation:
>> [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
>>      [main] INFO
>> org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean -
>> Initialized JPA EntityManagerFactory for persistence unit 'default'
>>      [main] WARN
>> org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration
>>
>> - spring.jpa.open-in-view is enabled by default. Therefore, database
>> queries may be performed during view rendering. Explicitly configure
>> spring.jpa.open-in-view to disable this warning
>>      addResourceHandlers
>>      [main] INFO com.kodekonveyor.market.SpringConfig -
>> addResourceHandlers
>>      viewResolver
>>      [main] INFO com.kodekonveyor.market.SpringConfig - viewResolver
>>      [main] INFO org.springframework.web.context.ContextLoader - Root
>> WebApplicationContext initialized in 12786 ms
>>      Initializing Spring DispatcherServlet 'DispatcherServlet'
>>      [main] INFO org.springframework.web.servlet.DispatcherServlet -
>> Initializing Servlet 'DispatcherServlet'
>>      [main] INFO org.springframework.web.servlet.DispatcherServlet -
>> Completed initialization in 17 ms
>>      Initializing Spring DispatcherServlet 'dispatcher'
>>      [main] INFO org.springframework.web.servlet.DispatcherServlet -
>> Initializing Servlet 'dispatcher'
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Bootstrapping Spring Data repositories in DEFAULT mode.
>>      [main] INFO
>> org.springframework.data.repository.config.RepositoryConfigurationDelegate
>>
>> - Finished Spring Data repository scanning in 13ms. Found 1 repository
>> interfaces.
>>      [main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204:
>> Processing PersistenceUnitInfo [name: default]
>>      [main] WARN
>> org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator -
>> HHH000342: Could not obtain connection to query metadata : Cannot create
>> PoolableConnectionFactory (Could not find a java cryptographic
>> algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
>>      [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using
>> dialect: org.hibernate.dialect.PostgreSQLDialect
>>      [main] INFO
>> org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator
>>
>> - HHH000490: Using JtaPlatform implementation:
>> [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
>>      [main] INFO
>> org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean -
>> Initialized JPA EntityManagerFactory for persistence unit 'default'
>>      addResourceHandlers
>>      [main] INFO com.kodekonveyor.market.SpringConfig -
>> addResourceHandlers
>>      viewResolver
>>      [main] INFO com.kodekonveyor.market.SpringConfig - viewResolver
>>      [main] INFO org.springframework.web.servlet.DispatcherServlet -
>> Completed initialization in 1378 ms
>>      Deployment of web application archive
>> [/var/lib/tomcat9/webapps/market.war] has finished in [25,639] ms
>>      Deploying web application directory [/var/lib/tomcat9/webapps/ROOT]
>>      At least one JAR was scanned for TLDs yet contained no TLDs. Enable
>> debug logging for this logger for a complete list of JARs that were
>> scanned but no TLDs were found in them. Skipping unneeded JARs during
>> scanning can improve startup time and JSP compilation time.
>>      Deployment of web application directory
>> [/var/lib/tomcat9/webapps/ROOT] has finished in [1,491] ms
>>      Starting ProtocolHandler ["ajp-nio-8009"]
>>      Server startup in [27,448] milliseconds
>>      [ajp-nio-8009-exec-1] INFO
>> com.kodekonveyor.market.servlets.LoginServlet -
>> service:com.kodekonveyor.market.login.LoginService@3e6bbac6
>>      [ajp-nio-8009-exec-1] INFO
>> com.kodekonveyor.market.login.LoginService - LoginService.call
>>      [ajp-nio-8009-exec-1] INFO
>> com.kodekonveyor.market.login.LoginService - githubSecret:s4cred S3cr3t
>>      Hibernate: select user0_.id as id1_0_, user0_.auth0id as auth2_0_,
>> user0_.email as email3_0_, user0_.name as name4_0_ from User user0_
>> where user0_.auth0id=?
>>      [ajp-nio-8009-exec-1] WARN
>> org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0,
>> SQLState: null
>>      [ajp-nio-8009-exec-1] ERROR
>> org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Cannot create
>> PoolableConnectionFactory (Could not find a java cryptographic
>> algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
>>      Servlet.service() for servlet
>> [com.kodekonveyor.market.servlets.LoginServlet] in context with path
>> [/market] threw exception
>>      org.springframework.orm.jpa.JpaSystemException: Unable to acquire
>> JDBC Connection; nested exception is
>> org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC
>> Connection
>>          at
>> org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:352)
>>
>>          at
>> org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:254)
>>
>>          at
>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
>>
>>          at
>> org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
>>
>>          at
>> org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
>>
>>          at
>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
>>
>>          at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>
>>          at
>> org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:149)
>>
>>          at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>
>>          at
>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
>>
>>          at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>
>>          at
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
>>
>>          at com.sun.proxy.$Proxy75.findByAuth0id(Unknown Source)
>>          at
>> com.kodekonveyor.market.login.LoginService.call(LoginService.java:41)
>>          at
>> com.kodekonveyor.market.servlets.LoginServlet.doGet(LoginServlet.java:29)
>>
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
>>
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>
>>          at
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>
>>          at
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
>>
>>          at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
>>
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
>>
>>          at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
>>
>>          at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
>>
>>          at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
>>
>>          at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
>>
>>          at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
>>
>>          at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
>>
>>          at
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
>>
>>          at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
>>
>>          at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
>>
>>          at
>> org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:394)
>>          at
>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
>>
>>          at
>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
>>
>>          at
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
>>
>>          at
>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>>
>>          at
>> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>>
>>          at
>> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>>
>>          at
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>
>>          at java.base/java.lang.Thread.run(Thread.java:834)
>>      Caused by: org.hibernate.exception.GenericJDBCException: Unable to
>> acquire JDBC Connection
>>          at
>> org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
>>
>>          at
>> org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
>>
>>          at
>> org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
>>
>>          at
>> org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:107)
>>
>>          at
>> org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:134)
>>
>>          at
>> org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:50)
>>
>>          at
>> org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:149)
>>
>>          at
>> org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176)
>>
>>          at
>> org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:151)
>>
>>          at
>> org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:2099)
>>          at
>> org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2029)
>>          at
>> org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2007)
>>          at org.hibernate.loader.Loader.doQuery(Loader.java:953)
>>          at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
>>
>>          at org.hibernate.loader.Loader.doList(Loader.java:2810)
>>          at org.hibernate.loader.Loader.doList(Loader.java:2792)
>>          at
>> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2624)
>>          at org.hibernate.loader.Loader.list(Loader.java:2619)
>>          at
>> org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
>>          at
>> org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
>>
>>          at
>> org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
>>
>>          at
>> org.hibernate.internal.SessionImpl.list(SessionImpl.java:1410)
>>          at
>> org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1558)
>>
>>          at
>> org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526)
>>
>>          at org.hibernate.query.Query.getResultList(Query.java:165)
>>          at
>> org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)
>>
>>          at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>          at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>
>>          at
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>>          at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>>          at
>> org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:409)
>>
>>          at com.sun.proxy.$Proxy87.getResultList(Unknown Source)
>>          at
>> org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:126)
>>
>>          at
>> org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88)
>>
>>          at
>> org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154)
>>
>>          at
>> org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142)
>>
>>          at
>> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:618)
>>
>>          at
>> org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605)
>>
>>          at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>
>>          at
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:353)
>>
>>          at
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
>>
>>          at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
>>
>>          at
>> org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
>>
>>          ... 38 more
>>      Caused by: java.sql.SQLException: Cannot create
>> PoolableConnectionFactory (Could not find a java cryptographic
>> algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
>>          at
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:735)
>>
>>          at
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:605)
>>
>>          at
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:794)
>>
>>          at
>> org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
>>
>>          at
>> org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)
>>
>>          at
>> org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:104)
>>
>>          ... 77 more
>>      Caused by: org.postgresql.util.PSQLException: Could not find a java
>> cryptographic algorithm: Cannot find any provider supporting
>> 1.2.840.113549.1.5.13.
>>          at
>> org.postgresql.ssl.LazyKeyManager.getPrivateKey(LazyKeyManager.java:253)
>>          at
>> java.base/sun.security.ssl.AbstractKeyManagerWrapper.getPrivateKey(SSLContextImpl.java:1764)
>>
>>          at
>> java.base/sun.security.ssl.X509Authentication$X509PossessionGenerator.createClientPossession(X509Authentication.java:197)
>>
>>          at
>> java.base/sun.security.ssl.X509Authentication$X509PossessionGenerator.createPossession(X509Authentication.java:154)
>>
>>          at
>> java.base/sun.security.ssl.X509Authentication.createPossession(X509Authentication.java:87)
>>
>>          at
>> java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.choosePossession(CertificateMessage.java:1052)
>>
>>          at
>> java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate(CertificateMessage.java:1073)
>>
>>          at
>> java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.produce(CertificateMessage.java:930)
>>
>>          at
>> java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
>>          at
>> java.base/sun.security.ssl.Finished$T13FinishedConsumer.onConsumeFinished(Finished.java:981)
>>
>>          at
>> java.base/sun.security.ssl.Finished$T13FinishedConsumer.consume(Finished.java:856)
>>
>>          at
>> java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
>>          at
>> java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:443)
>>
>>          at
>> java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421)
>>
>>          at
>> java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:177)
>>
>>          at
>> java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
>>          at
>> java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
>>          at
>> java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
>>
>>          at
>> java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
>>
>>          at org.postgresql.ssl.MakeSSL.convert(MakeSSL.java:40)
>>          at
>> org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:441)
>>
>>          at
>> org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:94)
>>
>>          at
>> org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
>>
>>          at
>> org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
>>
>>          at
>> org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
>>          at org.postgresql.Driver.makeConnection(Driver.java:458)
>>          at org.postgresql.Driver.connect(Driver.java:260)
>>          at
>> org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:53)
>>
>>          at
>> org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)
>>
>>          at
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:116)
>>
>>          at
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:731)
>>
>>          ... 82 more
>>      Caused by: java.security.NoSuchAlgorithmException: Cannot find any
>> provider supporting 1.2.840.113549.1.5.13
>>          at java.base/javax.crypto.Cipher.getInstance(Cipher.java:565)
>>          at
>> org.postgresql.ssl.LazyKeyManager.getPrivateKey(LazyKeyManager.java:205)
>>          ... 112 more
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to