2026-02-11 04:07:52.600 [http-nio-8080-exec-6] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$8e5754ef.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:07:58.259 [http-nio-8080-exec-7] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$8e5754ef.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:08:09.038 [http-nio-8080-exec-3] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: b37373 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$8e5754ef.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:08:17.310 [http-nio-8080-exec-10] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$8e5754ef.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:08:25.554 [http-nio-8080-exec-6] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$8e5754ef.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:09:13.471 [http-nio-8080-exec-6] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$dec89a47.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted 2026-02-11 04:09:27.914 [http-nio-8080-exec-8] ERROR i.c.s.s.impl.SecurityUserServiceImpl - 사용자 권한 조회 중 오류 발생: fkfk11 org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ### The error may exist in file [/Users/kiboomhan/env/works/all4land/incheon-geo-platform/target/classes/incheon/mapper/com/security/SecurityUserMapper.xml] ### The error may involve incheon.com.security.mapper.SecurityUserMapper.selectUserAuthrts-Inline ### The error occurred while setting parameters ### SQL: -- 정규 권한 (시스템 수준) SELECT sra.SYS_CD as sysCd, sra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD INNER JOIN iccom.SYS_ROLE_AUTHRT_MPNG sra ON r.ROLE_CD = sra.ROLE_CD AND r.SYS_CD = sra.SYS_CD INNER JOIN iccom.AUTHRT a ON sra.AUTHRT_CD = a.AUTHRT_CD AND sra.SYS_CD = a.SYS_CD WHERE urm.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY sra.SYS_CD, sra.AUTHRT_CD UNION ALL -- 정규 권한 (메뉴 수준) -- ROLE의 SYS_CD와 MENU의 SYS_CD가 일치하는 경우 조회 SELECT m.SYS_CD as sysCd, mra.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'REGULAR' as authrtType, MIN(r.ROLE_CD) as fromRoleCd, 'MENU' as scope, mra.MENU_CD as trgtCd FROM iccom.USER_ROLE_MPNG urm INNER JOIN iccom.ROLE r ON urm.ROLE_CD = r.ROLE_CD AND urm.SYS_CD = r.SYS_CD AND r.USE_YN = 'Y' INNER JOIN iccom.MENU_ROLE_AUTHRT_MPNG mra ON r.ROLE_CD = mra.ROLE_CD AND r.SYS_CD = mra.SYS_CD INNER JOIN iccom.MENU m ON mra.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON mra.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD AND a.USE_YN = 'Y' WHERE urm.USER_ID = ? AND r.SYS_CD = m.SYS_CD AND (urm.ROLE_BGNG_YMD IS NULL OR urm.ROLE_BGNG_YMD <= CURRENT_DATE) AND (urm.ROLE_END_YMD IS NULL OR urm.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, mra.AUTHRT_CD, mra.MENU_CD UNION ALL -- 임시 권한 (시스템 수준) SELECT tas.SYS_CD as sysCd, tas.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'SYS' as scope, NULL as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_SYS_MPNG tas ON tua.USER_ID = tas.USER_ID AND tua.ROLE_CD = tas.ROLE_CD AND tua.SYS_CD = tas.SYS_CD INNER JOIN iccom.AUTHRT a ON tas.AUTHRT_CD = a.AUTHRT_CD AND tas.SYS_CD = a.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY tas.SYS_CD, tas.AUTHRT_CD UNION ALL -- 임시 권한 (메뉴 수준) SELECT m.SYS_CD as sysCd, tam.AUTHRT_CD as authrtCd, MAX(a.AUTHRT_NM) as authrtNm, 'TEMP' as authrtType, MIN(tua.ROLE_CD) as fromRoleCd, 'MENU' as scope, tam.MENU_CD as trgtCd FROM iccom.TMPR_USER_AUTHRT tua INNER JOIN iccom.ROLE r ON tua.ROLE_CD = r.ROLE_CD AND tua.SYS_CD = r.SYS_CD INNER JOIN iccom.TMPR_USER_AUTHRT_MENU_MPNG tam ON tua.USER_ID = tam.USER_ID AND tua.ROLE_CD = tam.ROLE_CD AND tua.SYS_CD = tam.SYS_CD INNER JOIN iccom.MENU m ON tam.MENU_CD = m.MENU_CD AND m.USE_YN = 'Y' INNER JOIN iccom.AUTHRT a ON tam.AUTHRT_CD = a.AUTHRT_CD AND a.SYS_CD = m.SYS_CD WHERE tua.USER_ID = ? AND r.USE_YN = 'Y' AND a.USE_YN = 'Y' AND r.SYS_CD = m.SYS_CD AND (tua.ROLE_BGNG_YMD IS NULL OR tua.ROLE_BGNG_YMD <= CURRENT_DATE) AND (tua.ROLE_END_YMD IS NULL OR tua.ROLE_END_YMD >= CURRENT_DATE) GROUP BY m.SYS_CD, tam.AUTHRT_CD, tam.MENU_CD ORDER BY sysCd, authrtType, scope, authrtCd ### Cause: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:439) at jdk.proxy2/jdk.proxy2.$Proxy161.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80) at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at jdk.proxy3/jdk.proxy3.$Proxy163.selectUserAuthrts(Unknown Source) at incheon.com.security.service.impl.SecurityUserServiceImpl.getUserWithAuthrts(SecurityUserServiceImpl.java:95) at incheon.com.security.service.impl.SecurityUserServiceImpl$$FastClassBySpringCGLIB$$db21d4c2.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at incheon.com.security.service.impl.SecurityUserServiceImpl$$EnhancerBySpringCGLIB$$dec89a47.getUserWithAuthrts() at incheon.com.security.web.LoginController.loginProcess(LoginController.java:68) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:903) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:809) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.filter.HTMLTagFilter.doFilter(HTMLTagFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.config.CSPOncePerRequestFilter.doFilterInternal(CSPOncePerRequestFilter.java:43) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:96) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at incheon.com.security.web.AuthenticationFilter.doFilterInternal(AuthenticationFilter.java:76) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:125) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at incheon.com.cmm.context.RequestContextFilter.doFilterInternal(RequestContextFilter.java:127) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: org.postgresql.util.PSQLException: ERROR: column urm.sys_cd does not exist Hint: Perhaps you meant to reference the column "r.sys_cd". Position: 383 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:182) at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362) at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:58) at jdk.proxy4/jdk.proxy4.$Proxy170.execute(Unknown Source) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:80) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:65) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:336) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:158) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:110) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:90) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:61) at incheon.com.config.mybatis.MybatisUserSessionInterceptor.intercept(MybatisUserSessionInterceptor.java:64) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) at jdk.proxy2/jdk.proxy2.$Proxy168.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:425) ... 143 common frames omitted