Java 无法使用jdbc模板将spring boot与安全Kerberos连接
我正在尝试将kerberos群集与springboot连接,但遇到了一些问题- 这是我的密码-Java 无法使用jdbc模板将spring boot与安全Kerberos连接,java,spring-boot,kerberos,phoenix,spring-security-kerberos,Java,Spring Boot,Kerberos,Phoenix,Spring Security Kerberos,我正在尝试将kerberos群集与springboot连接,但遇到了一些问题- 这是我的密码- package com.virginvoyages.nbx.phoenix.jdbc.config; import java.io.IOException; import java.util.Properties; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value; imp
package com.virginvoyages.nbx.phoenix.jdbc.config;
import java.io.IOException;
import java.util.Properties;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.apache.hadoop.security.UserGroupInformation;
/**
* Spring JDBC Connection for Phoenix Hbase.
*
* @author mokasara
*
*/
@ConditionalOnProperty(name = "deployment", havingValue = "ship")
@Configuration
public class PhoenixHbaseJDBCDatasourceShipConnection {
@Value("${nbx.phoenix.hbase.ship.url}")
private String nbxHbaseUrl;
/**
* Phoenix Datasource Connection Bean.
*
* @return Datasource
* @throws IOException
*/
@Bean
public DataSource phoenixDataSource() throws IOException {
DriverManagerDataSource dataSource1 = new DriverManagerDataSource();
System.setProperty("java.security.krb5.conf", "src/main/resources/krb5.conf");
org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
conf.set("hadoop.security.authentication", "kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("hbase-dev@myhost.com","src/main/resources/hbase.headless.keytab");
dataSource1.setUsername("username");
dataSource1.setPassword("password");
dataSource1.setDriverClassName("org.apache.phoenix.jdbc.PhoenixDriver");
dataSource1.setUrl(nbxHbaseUrl);
return dataSource1;
}
/**
* Phoenix Hbase JDBC Template Bean.
*
* @param dataSource
* - datasource
* @return JdbcTemplate
*/
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
return jdbcTemplate;
}
}
我越来越不正常了-
*
{“timestamp”:“2019-12-04T17:56:23.118+05:30”,“version”:1,“message”:“CalendarRecommensionDaoImpl方法中发生异常-GetCalendarRecommensions”,“logger_name”:“com.virginovayages.nbx.dao.impl.CalendarDaoSupport”,“thread_name”:“http-nio-8438-exec-1”,“level”:“ERROR”,“level_value”:40000,“stack_trace”:“org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取jdbc连接;嵌套异常为java.sql.SQLException:错误103(08004):无法建立连接。\r\n\tat org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81)\r\n\tat org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)\r\n\tat org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)\r\n\tat org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:473)\r\n\tat com.virginovayages.nbx.dao.impl.CalendarDaoSupport.GetCalendarRecommensions(CalendarDaoSupport.java:199)\r\n\tat com.virginovayages.nbx.dao.impl.CalendarDaoSupport$$FastClassBySpringCGLIB$$e665c50f.invoke()\r\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceduce(ReflectiveMethodInvocation.java:163)\r\n\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invocation(ExposeInvocationInterceptor.java:93)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)\r\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n\tat com.virginovayages.nbx.dao.impl.arinventoryHelper$$EnhancerBySpringCGLIB$c7dbe61c.getcalendar建议()\r\n\t com.virginovayages.nbx.assembly.impl.CalendarRecommensionAssemblyImpl.GetCalendarRecommension(CalendarRecommensionAssemblyImpl.java:43)\r\n\t com.virginovayages.nbx.assembly.impl.CalendarRecommensionAssemblyImpl$$FastClassBySpringCGLIB$$BF2AE41.invoke()\r\n\t org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.procement(ReflectiveMethodInvocation.java:163)\r\n\tat org.springframework.aop.aspectj.aspectjafthrowingadvice.invoke(aspectjafthrowingadvice.java:62)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.proceduce(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:55)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.proceduce(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.procement(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n\t com.virginovayages.nbx.assembly.CalendarRecommendationAssemblyImpl$$EnhancerBySpringCGLIB$$6cb4e4b4.getCalendarRecommendations()\r\n\tat com.virginovayages.nbx.calendar.CalendarRecommendationController.calendarRecommendationPost(CalendarRecommendationController.java:90)\r\n\tat com.virginovayages.nbx.calendar.CalendarRecommendationController$$FastClassBySpringCGLIB$$d5e5fde5.invoke()\r\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceduce(ReflectiveMethodInvocation.java:163)\r\n\tat org.springframework.aop.framework.adapter.adapter.MethodBeforeAdviceInterceptor(MethodBeforeAdviceInterceptor.java:56)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.procement(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:55)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n\t org.springframework.aop.framework.ReflectiveMethodInvocation.proceduce(ReflectiveMethodInvocation.java:186)\r\n\t org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n\t com.virginovayages.nbx.calendar.calendarRecommensionController$$EnhancerBySpringCGLIB$$25ffe737.calendarRecommensionPost()\r\n\t sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n\tat java.lang.reflect.Method.invoke(Method.java:498)\r\n\tat org.springframework.web.Method.Method.support.InvocableHandlerMethod.doInvoke\r\n\t org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)\r\n\t o