DB 쿼리 오류 발생(ibatis) 시 상세 정보를 숨길 수 있나요?
- 작성자 :
- 우*규
- 작성일 :
- 2020-03-30 20:03:16
- 조회수 :
- 2,733
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
현재 사용 중인 시스템이 spring 3.0.5 기반의 전자정보 프레임웍에 사용하는 특정 툴을 위한 기능을 싸서(wrapping) 동작하는 것으로 알고 있습니다. 문제는 DB 오류 발생 시 사용자(클라이언트)단에 해당 오류의 세부내용이 전달되는 것입니다.
예를 들어 허용된 컬럼 자리수 보다 큰 값이 update 되는 경우 "~ 컬럼명표시 ~ 열에 대한 값이 너무 큼(실제:9, 최대값: 8) ~ sqlmap 파일명 표시 ~ Cause: java.sql.SQLException: ORA-12899 ~ 테이블명 ~ " 과 같은 식인데요. 사용하는 DB 이름, 테이블, 컬럼명 등 상세 정보가 너무 많이 노출되고 있습니다.
커스터마이징 방법이 있을까요?
dispatcher-servlet.xml 에 보면 다음 부분이 있는데..
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmmn/bizError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/bizError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmmn/accessDenied</prop>
</props>
</property>
</bean>
관련 jsp 파일은 보이지 않습니다.
또한 logback-test.xml 파일에 보면,
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</layout>
</appender>
<logger name="java.sql.PreparedStatement" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<logger name="java.sql.Connection" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<root>
<level value="OFF" />
<appender-ref ref="CONSOLE" />
</root>
이런 부분이 있는데 해당 파일을 삭제해도 마찬가지입니다.
어떻게 해야 할까요?
예를 들어 허용된 컬럼 자리수 보다 큰 값이 update 되는 경우 "~ 컬럼명표시 ~ 열에 대한 값이 너무 큼(실제:9, 최대값: 8) ~ sqlmap 파일명 표시 ~ Cause: java.sql.SQLException: ORA-12899 ~ 테이블명 ~ " 과 같은 식인데요. 사용하는 DB 이름, 테이블, 컬럼명 등 상세 정보가 너무 많이 노출되고 있습니다.
커스터마이징 방법이 있을까요?
dispatcher-servlet.xml 에 보면 다음 부분이 있는데..
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmmn/bizError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/bizError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmmn/accessDenied</prop>
</props>
</property>
</bean>
관련 jsp 파일은 보이지 않습니다.
또한 logback-test.xml 파일에 보면,
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</layout>
</appender>
<logger name="java.sql.PreparedStatement" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<logger name="java.sql.Connection" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<root>
<level value="OFF" />
<appender-ref ref="CONSOLE" />
</root>
이런 부분이 있는데 해당 파일을 삭제해도 마찬가지입니다.
어떻게 해야 할까요?
A
안녕하세요.
표준프레임워크 센터입니다.
서비스단에서 오라클 예외처리 방법은
아래 링크를 참고하시면 좋을 듯 합니다.
1. https://secr.tistory.com/282
2. https://m.blog.naver.com/PostView.nhn?blogId=musicovery12&logNo=220596184899&proxyReferer=https%3A%2F%2Fwww.google.com%2F
감사합니다.
표준프레임워크 센터입니다.
서비스단에서 오라클 예외처리 방법은
아래 링크를 참고하시면 좋을 듯 합니다.
1. https://secr.tistory.com/282
2. https://m.blog.naver.com/PostView.nhn?blogId=musicovery12&logNo=220596184899&proxyReferer=https%3A%2F%2Fwww.google.com%2F
감사합니다.