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&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: [email protected]
>> For additional commands, e-mail: [email protected]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]