Giter Club home page Giter Club logo

Comments (37)

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw

  1. 해당 화면에 새로 추가된 security 에 관한 파라메터는 어떤 값으로 던져야되나요?
  2. 기존에 있던 일반용/워크벤치용으로 사용되던 usageScope는 더 이상 파라메터로 전달하지 않으면 되나요?

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

f#14-improve_data_connection 브랜치 생성하였습니다

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu

  1. security 관련 파라미터는 새로 추가된 파라미터가 아닙니다.
    해당 기능은 이미 구현되어 사용하던 기능이므로 자세한 기능은 Workbench Front-end쪽 소스 참고하시기 바랍니다.
    property : authenticationType
  • 항상 연결 : MANUAL
  • 사용자계정으로 연결 : USERINFO
  • 아이디와 비번으로 연결 : DIALOG
  1. usageScope 속성은 Entity에서 삭제됩니다. 파라미터에서도 삭제해주시고 response 참조 부분도 삭제해주세요.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
issue 본문의 내용 중

Additional context
커넥션 화면을 사용하는 데이터 적재 관련 화면/워크벤치 기능에 대한 전수 점검이 필요합니다.

이 부분은 확인 다 하시고 pull request 하시는건가요?

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
기존에 생성된 데이터커넥션을 이용하는 소스화면 / 워크벤치에 대한 기능에는 이상이없습니다.
다만 워크스페이스에서 워크벤치에서 생성시에 usageScope가 default에 대한 커넥션에 대해 표기되지 않아 수정하였습니다.
필터링에 대해서는 서버로 통신하고 있기 때문에 값이없던 커넥션에 대해 처리가 필요합니다.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
데이터 소스 생성시 데이터커넥션을 불러올 경우 문제가 많을텐데 이상없다고 하시니 이상하네요.
데이터소스 생성시 문제가 되는 부분에 대해 프로세스 재정리 중입니다.
API 쪽 수정 후 다시 작업 시작하시죠.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
서버사이드 API 작업이 완료되었습니다.
이 외에 프로세스 변경사항은 @AnnieHwang 님을 통해서 전달될 예정입니다.

기존 로직에서 상당히 많은 버그를 발견하였습니다. 작업 후 꼼꼼히 테스트 바랍니다.

변경사항

  1. JDBC 타입의 DataSource 등록시 connection authentication 유형이 DIALOG일 경우 필수 속성 추가
    ingestion.connectionUsername
    ingestion.connectionPassword

"ingestion": {
"dataType": "TABLE",
"type": "single",
"rollup": true,
"query": "simple",
"database": "sample",
"scope": "ALL",
"connectionUsername":"polaris",
"connectionPassword":"polaris"
}

  1. DataConnection Authentication 몇차례 변경으로 인해 기본값에 대한 예외처리 추가필요함.
    AuthenticationType이 공백이거나, "default"일 경우 "MANUAL" 과 동일하게 UI에서 처리해주시기 바랍니다.
    기 등록된 DataConnection 상세 보기시 UI 오작동이 없도록 조치바랍니다.

오류사항

  1. DataSource 등록 및 DataConnection 등록시 파라미터 오류가 굉장히 많습니다.
    DataConnection 유형이 MANUAL 이 아닌경우는 사용자정보를 서버에 저장하지 않아야 하는데 현재 모두 서버에 파라미터로 보내고 있습니다.
    그러므로 기존 DataConnection으로 테스트하지 마시고 신규로 생성한 DataConnection으로 테스트하시기 바랍니다.

  2. DataConnection.Authenticaition 이 DIALOG, USERINFO 인 경우 파라미터에 누락된 값들이 많습니다.
    websocketId, Dialog를 통한 사용자 정보 등등.
    1번 오류사항 때문에 그 동안 버그로 검출되지 않는상황이었습니다.
    3가지 Authentication 유형에 대해 워크벤치에서 오작동하는 경우가 없도록 조치 바랍니다.

  3. DataConnection 등록 시 탭키 이동 오작동
    사용자명에서 탭키 클릭시 포커스 사라집니다.

  4. DataSource 등록시 커넥션 정보 입력 다음 스텝에서 커넥션 정보로 되돌아 갈 경우 기존 값들 유지 안됨.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu

참고로 제가 데이터 소스 생성시 JDBC DataConneciton기능을 사용하는 경우의 수입니다.

DataSource connType
: ENGINE, LINKED

기존 DataConnection Preset 사용 여부
: O, X

DataConnection authenticationType
: MANUAL, USERINFO, DIALOG

DataSource Ingestion Type
: single, batch

모든 케이스에서 오류가 없도록 꼼꼼히 확인해주세요.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
위 오류사항 문의 드립니다.

  1. Authentication 이 MANUAL이 아닌경우 사용자 정보를 저장하지 않아야된다는 것은
    username과 password를 파라메터로 전달하지 말라는 말씀인가요?
    만약 커넥션 수정시에 기존 Authentication이 MANUAL에서 DIALOG나 USERINFO로 변경한경우 username과 password를 빈 값으로 넘기면되나요?
  2. Authentication 가 DIALOG인 경우 데이터커넥션 생성 및 수정에서도 username과 password 대신 connectionUsername과 connectionPassword로 전달하면 되나요?

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu

  1. 네. 넘기셔도 지금은 DB에 저장되지 않습니다.
  2. connectionUsername과 connectionPassword 파라미터는 데이터 커넥션이 아니라 데이터소스의 ingestion 속성입니다. 데이터 커넥션 생성/수정에서는 connectionUsername, connectionPassword 속성을 사용하지 않습니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
데이터소스 생성시 MANUAL을 제외한 나머지 두 타입에 대한 문의입니다.

  1. 소스 생성시에도 MANUAL을 제외한 나머지 두 값은 password와 username을 전달하지 말아야 되나요?

  2. 현재 생성단계에서 프리셋을 사용하지 않고.
    DIALOG로 설정시 기존에 connection 내의 password와 username을 제외하고
    connectionUsername과 connectionPassword를 추가하였을때 발생하는 에러입니다.

connType:"ENGINE"
description:""
dsType:"MASTER"
fields:[,…]
granularity:"MONTH"
ingestion:{
connection:{type: "JDBC", implementor: "MYSQL", url: "jdbc:mysql://localhost:3306"}
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"TABLE"
database:"polaris_v2"
query:"activity_stream"
rollup:true
scope:"ALL"
type:"single"
}
name:"1"
segGranularity:"MONTH"
srcType:"JDBC"
app.metatron.discovery.domain.datasource.connection.jdbc.JdbcDataConnectionException: Fail to query : SELECT command denied to user ''@'localhost' for table 'activity_stream'
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcCSVWriter.write(JdbcCSVWriter.java:200)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:1070)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:921)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:912)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.selectQueryToCsv(JdbcConnectionService.java:905)
	at app.metatron.discovery.domain.engine.EngineIngestionService.doDBToFileIngestion(EngineIngestionService.java:332)
	at app.metatron.discovery.domain.engine.EngineIngestionService.doIngestion(EngineIngestionService.java:161)
	at app.metatron.discovery.domain.engine.EngineIngestionService$$FastClassBySpringCGLIB$$8904beb2.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.engine.EngineIngestionService$$EnhancerBySpringCGLIB$$aa41f9bd.doIngestion(<generated>)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.initEngineIngestion(DataSourceEventHandler.java:359)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.checkCreateAuthority(DataSourceEventHandler.java:132)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$FastClassBySpringCGLIB$$d36826d1.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$EnhancerBySpringCGLIB$$44668559.checkCreateAuthority(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:98)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:59)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.createAndReturn(RepositoryEntityController.java:484)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.postCollectionResource(RepositoryEntityController.java:272)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
	at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
	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:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	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:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
connection 속성 중 authenticationType 정보가 누락되어 있네요.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu

소스 생성시에도 MANUAL을 제외한 나머지 두 값은 password와 username을 전달하지 말아야 되나요?

authenticationType이 MANUAL이 아닐 경우는 connection.username, connection.password 파라미터는 필요하지 않습니다.

아래는 Engine - 프리셋 미사용 - DIALOG 유형 - SINGLE Ingestion 시 DataSource 등록 request sample 입니다.

{ "dsType": "MASTER", "srcType": "JDBC", "connType": "ENGINE", "granularity": "MONTH", "segGranularity": "MONTH", "name": "jdbc-none-connection-dialog-single", "description": "", "fields": [ { "name": "orderdate", "alias": "orderdate", "type": "TIMESTAMP", "logicalType": "TIMESTAMP", "role": "TIMESTAMP", "aggrType": "NONE", "format": "yyyy-MM-dd HH:mm:ss.SSSSSS", "seq": 0 }, { "name": "category", "alias": "category", "type": "STRING", "logicalType": "STRING", "role": "DIMENSION", "aggrType": "NONE", "seq": 1 }, { "name": "sales", "alias": "sales", "type": "DOUBLE", "logicalType": "DOUBLE", "role": "MEASURE", "aggrType": "NONE", "seq": 2 } ], "ingestion": { "dataType": "TABLE", "type": "single", "rollup": true, "query": "simple", "database": "sample", "scope": "ALL", "connectionUsername":"polaris", "connectionPassword":"polaris", "connection": { "type": "JDBC", "implementor": "MYSQL", "hostname": "localhost", "port": "3306", "authenticationType": "DIALOG" } } }

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
에러 로그 라인 숫자를 보니 서버사이드 소스 반영이 안된채로 테스트하고 계신가보네요.
서버 쪽 소스 내려받고 테스트바랍니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw 답변감사합니다.
아래는 ENGINE-프리셋사용안함-DIALOG-BATCH-INCREMENTAL과
ENGINE-프리셋사용안함-DIALOG-BATCH-ALL일때 발생한 에러입니다.

connType:"ENGINE"
description:""
dsType:"MASTER"
fields:[,…]
granularity:"MONTH"
ingestion:{
connection:{type: "JDBC", implementor: "MYSQL", authenticationType: "DIALOG", hostname: "localhost", port: "3306"}
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"TABLE"
database:"polaris_v2"
period:{frequency: "MINUTELY", value: 1}
query:"datasource"
range:"INCREMENTAL"
rollup:true
size:10000
type:"batch"
}
name:"ENGINE-DIALOG-BATCH-INCRE"
segGranularity:"MONTH"
srcType:"JDBC"
2018-08-22 06:19:13.228app.metatron.discovery.common.exception.UnknownServerException: BatchIngestion not allowed DIALOG Authentication.
 	at app.metatron.discovery.common.exception.RestExceptionHandler.handleMiscFailures(RestExceptionHandler.java:94)
ERROR 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[127.0.0.1-polaris] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[http-nio-8180-exec-1] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
a.m.d.c.exception.RestExceptionHandler  	at java.lang.reflect.Method.invoke(Method.java:498)
 : [API:/api/datasources] GB0001 Unknown server error: BatchIngestion not allowed DIALOG Authentication., {}
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:384)
	at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:59)
	at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
	at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:76)
	at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1222)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1034)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
	at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
	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:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	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:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: BatchIngestion not allowed DIALOG Authentication.
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.checkCreateAuthority(DataSourceEventHandler.java:103)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$FastClassBySpringCGLIB$$d36826d1.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$EnhancerBySpringCGLIB$$da9edbb3.checkCreateAuthority(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:98)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:59)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.createAndReturn(RepositoryEntityController.java:484)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.postCollectionResource(RepositoryEntityController.java:272)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	... 88 more

아래는 ENGINE-프리셋사용함-DIALOG-BATCH-INCREMENTAL과
ENGINE-프리셋사용함-DIALOG-BATCH-ALL일때 발생한 에러입니다.

connType:"ENGINE"
connection:"/api/connections/11f49323-f2db-4693-aabd-86961c360c60"
description:""
dsType:"MASTER"
fields:[{name: "product#product_01_code$1", alias: "product#product_01_code$1", type: "STRING",…},…]
granularity:"MONTH"
ingestion:{
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"TABLE"
database:"0491c63f_dcea_e146_f629_a9e312168ba5"
period:{frequency: "MINUTELY", value: 1}
query:"bbb"
range:"INCREMENTAL"
rollup:true
size:10000
type:"batch"
}
name:"ENGINE-PRESET-DIALOG-BATCH-INCRE"
segGranularity:"MONTH"
srcType:"JDBC"
2018-08-22 06:42:59.996 ERROR [127.0.0.1-polaris] [http-nio-8180-exec-3] a.m.d.c.exception.RestExceptionHandler   : [API:/api/datasources] GB0001 Unknown server error: BatchIngestion not allowed DIALOG Authentication., {}
app.metatron.discovery.common.exception.UnknownServerException: BatchIngestion not allowed DIALOG Authentication.
	at app.metatron.discovery.common.exception.RestExceptionHandler.handleMiscFailures(RestExceptionHandler.java:94)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:384)
	at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:59)
	at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
	at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:76)
	at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1222)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1034)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
	at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
	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:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	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:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: BatchIngestion not allowed DIALOG Authentication.
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler.checkCreateAuthority(DataSourceEventHandler.java:103)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$FastClassBySpringCGLIB$$d36826d1.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at app.metatron.discovery.domain.datasource.DataSourceEventHandler$$EnhancerBySpringCGLIB$$da9edbb3.checkCreateAuthority(<generated>)
	at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:216)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:98)
	at org.springframework.data.rest.core.event.AnnotatedEventHandlerInvoker.onApplicationEvent(AnnotatedEventHandlerInvoker.java:59)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:393)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:347)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.createAndReturn(RepositoryEntityController.java:484)
	at org.springframework.data.rest.webmvc.RepositoryEntityController.postCollectionResource(RepositoryEntityController.java:272)
	at sun.reflect.GeneratedMethodAccessor395.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	... 88 more

DIALOG인 경우에 Ingesteion단계 ui에서 다른 처리가 필요한가요?

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
기획서 상 일부 변경 사항이 있습니다.
DIALOG 타입의 커넥션일 경우 Batch 타입의 DataSource 생성이 불가능합니다.
https://tde.sktelecom.com/pms/browse/METATRON-1150
이외에도 수정된 사항이 있으니 확인 후 작업하시면 됩니다.

필요하신 경우 @esezin 님에게 수정된 사항 확인하시기 바랍니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

DIALOG 타입이 커넥션인 경우 Ingestion 단계에서 Batch 타입을 선택하지 못하도록 수정하였습니다.
2018-08-22 4 49 20

워크벤치에서 '차트 미리보기' 기능을 사용하는 경우에 아래의 api를 사용하는 경우에 로직을 수정하였습니다.

api/datasources/temporary

DIALOG 인경우 ingestion 에 connectionPassword와 connectionUsername을 추가하였습니다.
MANUAL 인경우에만 connection 에 username과 password를 추가하였습니다.
아래는 사용시 예시입니다.

connType:"LINK"
description:""
dsType:"MASTER"
engineName:"bulk_ingestion_1534927106325"
fields:[{name: "current_datetime", type: "TIMESTAMP", role: "TIMESTAMP", format: "yyyy-MM-dd HH:mm:ss",…},…]
granularity:"DAY"
ingestion:{
connection:{implementor: "MYSQL", type: "JDBC", hostname: "localhost", port: "3306",…}
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"QUERY"
database:"information_schema"
query:"SELECT * FROM information_schema.ALL_PLUGINS"
type:"link"
}
name:"bulk_ingestion_1534927106325"
segGranularity:"MONTH"
srcType:"JDBC"

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
front-end 소스 수정완료되면 알려주세요~
그 이후에 테스트하는게 좋겠습니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw front-end 소스 수정완료하였습니다.
메타데이터 생성 hive쪽도 변경된 기획안 적용하였습니다.

전체적으로 다시 테스트 해보겠습니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
2018-08-27 10 18 45
데이터소스 생성 - 데이터 선택단계에서 아래와 같은 api를 사용하고 있습니다.

api/connections/query/databases

이번에 수정된 사항을 적용하면서 이쪽에도 authenticationType 을 추가하면서 api 조회시 전달하는 파라메터를 아래와 같이 수정하였습니다.

// authenticationType 이 MANUAL 인경우에만 username과 password 추가
connection:{
 implementor: "MYSQL", 
 authenticationType: "DIALOG", 
 hostname: "localhost", 
 port: "3306"
}

여기도 적용하면 되나요?

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
네. 기존 /api/connections/query 에서 파생되는 api는 아래처럼 변경해주시기 바랍니다.
authenticationType이 userinfo일 경우는 password, username 생략 가능.
나머지 케이스일 경우는 password, username 파라미터 필요합니다.

예를 들어 주신 경우는
connection:{
implementor: "MYSQL",
hostname: "localhost",
port: "3306",
username : "....."
password : "......"
}

위와 같은 구조여야 합니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
테스트를 전체적으로 해보았습니다.

DIALOG 타입으로 생성된 커넥션을 이용했을 경우
아래와 같은 에러사항이 발견되었습니다.

워크벤치

테스트 순서 :

  1. DIALOG 타입으로 데이터 커넥션 생성
  2. 생성된 데이터 커넥션으로 워크벤치 생성
  3. 워크벤치로 이동하여 사용 가능한 데이터베이스 목록 확인
    2018-08-28 3 39 30
  4. 생성된 커넥션으로 데이터소스 생성 (3에서 확인한 목록에 없는 데이터베이스 선택)
    (커넥션 생성시 사용했던 아이디 패스워드 재 입력)
    2018-08-28 3 39 59
  5. 2에서 생성한 워크벤치로 이동
  6. 워크벤치 생성시 사용한 아이디 패스워드 입력
  7. 에러 발생

커넥션 생성시 사용된 파라메터

authenticationType:"DIALOG"
hostname:"localhost"
implementor:"MYSQL"
name:"mysql-localhost-3306"
port:"3306"
published:false
type:"JDBC"
workspaces:["/api/workspaces/ws-02"]

데이터소스 생성시 사용된 파라메터

connType:"ENGINE"
connection:"/api/connections/fcea2961-4e1d-42c7-849c-c1907a63ef04"
description:""
dsType:"MASTER"
fields:[,…]
granularity:"MONTH"
ingestion:{
connectionPassword:"polaris"
connectionUsername:"polaris"
dataType:"TABLE"
database:"polaris_v2"
query:"activity_stream"
rollup:true
scope:"ALL"
type:"single"
}
name:"g"
segGranularity:"MONTH"
srcType:"JDBC"

에러 발생 api

api/connections/fcea2961-4e1d-42c7-849c-c1907a63ef04/databases?sort=modifiedTime%2Cdesc&page=0&size=15

에러 내용

app.metatron.discovery.domain.datasource.connection.jdbc.JdbcDataConnectionException: Fail to get list of database : Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'polaris_v2'
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.searchDatabasesWithQueryPageable(JdbcConnectionService.java:1462)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.searchDatabases(JdbcConnectionService.java:1425)
	at app.metatron.discovery.domain.datasource.connection.jdbc.JdbcConnectionService.findDatabases(JdbcConnectionService.java:146)
	at app.metatron.discovery.domain.datasource.connection.DataConnectionController.queryForListOfDatabasesByConnectionId(DataConnectionController.java:315)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
2018-08-28 06:43:41.059	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
ERROR	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
[127.0.0.1-polaris] 	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
[http-nio-8180-exec-6] 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
a.m.d.d.d.c.jdbc.JdbcConnectionService   	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
:	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 Fail to get list of database : Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'polaris_v2'
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2018-08-28 06:43:41.061 	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
 WARN 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[127.0.0.1-polaris] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
[http-nio-8180-exec-6]	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 a.m.d.d.d.c.jdbc.JdbcConnectionService  	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110)
 :	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
 Fail to Close connection.
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.CommonLocalVariableFilter.doFilter(CommonLocalVariableFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at app.metatron.discovery.common.web.LogbackMdcFilter.doFilter(LogbackMdcFilter.java:59)
2018-08-28 06:43:41.061 ERROR [127.0.0.1-polaris] [http-nio-8180-exec-6] a.m.d.c.e.GlobalExceptionHandler         : [API:/api/connections/fcea2961-4e1d-42c7-849c-c1907a63ef04/databases] JDC0003 Fail to connect: Fail to get list of database : Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'polaris_v2', {}
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:167)
	at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
	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:197)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	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:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
사용하신 database 목록 조회 API는 websocket을 이용한 connection일 경우를 위한 api 입니다.
datasource 생성시에는 기존 /connections/query 에서 파생되는 API를 사용하셔야 합니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
현재 datasource 생성시 /api/connections/query/databases를 사용하고 있습니다.
워크벤치 에서는 api/connections/{connectionId}databases를 사용하고있는데 해당 api를 사용하지말고 다른 api를 사용하면 될까요?

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
API는 그렇게 사용하시는게 맞습니다.
에러 내용이 잘 이해가 안되네요.
3번과 7번에 동일한 API를 동일한 파라미터로 호출한건데 3번에서는 이상없는데 7번에서 에러가 나나요?

일단 에러내용은 api/connections/{connectionId}databases 호출시 websocketId 파라미터가 누락되어 있네요.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-exntu
webSocketId parameter validation check 로직이 추가되었습니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
워크벤치에서 connection 관련 api를 이용하는 경우 websocketId 파라메터가 누락되어 있어서 생긴 문제였습니다.
워크벤치에서 connection api 사용시 websocketId 파라메터를 추가하도록 수정하였습니다.
더이상 위와같은 에러가 발견되지 않았습니다.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-wonjune
워크벤치의 스키마 브라우저 새창보기시 에러 발생합니다.
이 부분도 확인 바랍니다.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-wonjune
작업이 거의 다 되신것 같은데요.
작업 마무리 되시면 Pull Request 오픈 해주시면 됩니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw 스키마 브라우저 새창보기시 웹소켓아이디 전달에서 문제가있어서 수정하였습니다.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

미흡한 내용이 있어 이슈 리오픈 합니다.
_m-core_wf-d1-datastorage__1_

@minjung-cho
퍼블리싱에도 해당 기획내용이 반영되어 있는지 확인바랍니다.

@brandon-wonjune
해당 내용 추가로 작업해서 커밋 바랍니다.

from metatron-discovery.

minjung-cho avatar minjung-cho commented on May 19, 2024

@ufoscw 구분선 관련 의견 주신 것은.. 맞는 말인것 같습니다. 의견 고맙습니다. @AnnieHwang 구분선 위치는 변경하는게 좋겠지요?

screenshot-19
@brandon-wonjune Ingestion type 순서, 보안3번째 항목에 경고 문구 는 디자인은 나왔고 퍼블에 전달되었다고 합니다~ 한번 체크해 보셔야 할 것 같아요. 번거롭지만, 구분선 위치도 퍼블 수정하실때 변경 부탁드립니다. @koeun222 참고해 주세요~

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-wonjune
작업 완료되면 PR 오픈 해주세요.

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-wonjune
PostgreSQL 버튼 마우스 오버시 버튼 길이가 조금씩 바뀝니다. 확인 부탁드려요.
해당 이슈는 오전중에 review까지 마무리 하고 오후 2차 통합테스트에 포함될 예정입니다.

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
구분선, 문구, 마우스 호버 버튼 길이, 체크 css수정하였습니다. PR오픈 하겠습니다.
2018-09-07 10 42 27

from metatron-discovery.

brandon-wonjune avatar brandon-wonjune commented on May 19, 2024

@ufoscw
통합테스트 중 기존에 생성된 GENERAL 타입에 대한 커넥션 사용시 다음과 같은 에러사항이 발생하였습니다.

테스트
데이터커넥션 > GENERAL 타입의 커넥션 상세 조회 > 권한 수정 > 에러 발생

// api
api/connections/ba2fbb39-d624-4a53-92c0-f994a2ca7bfd

// params
{published:true}

// error 
error:"Internal Server Error"
exception:"org.springframework.transaction.TransactionSystemException"
message:"Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction"
path:"/api/connections/ba2fbb39-d624-4a53-92c0-f994a2ca7bfd"
status:500
timestamp:"2018-09-07T02:46:32.658+0000"

ui에서 다른 처리가 필요한가요?

from metatron-discovery.

ufoscw avatar ufoscw commented on May 19, 2024

@brandon-wonjune
api 오류 수정 예정입니다.

from metatron-discovery.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.