context-security.xml설정
- 작성자 :
- 이*근
- 작성일 :
- 2020-07-21 20:39:02
- 조회수 :
- 3,740
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
jdbcUsersByUsernameQuery="SELECT USER_ID, ESNTL_ID AS PASSWORD, 1 ENABLED, USER_NM, USER_ZIP,
USER_ADRES, USER_EMAIL, USER_SE, ORGNZT_ID, ESNTL_ID,
(select a.ORGNZT_NM from COMTNORGNZTINFO a where a.ORGNZT_ID = m.ORGNZT_ID) ORGNZT_NM
FROM COMVNUSERMASTER m WHERE CONCAT(USER_SE, USER_ID) = ?"
선언된 테이블이 아닌 다른 테이블에서 정보를 불러오려고하는데
다른 쿼리를 작성해서 넣을 경우 부적합한 열 이름으로 오류가 계속 발생합니다.
(user_id, password, enabled는 디폴트도 select문에 넣었음)
오류 내용
org.springframework.security.authentication.InternalAuthenticationServiceException: PreparedStatementCallback; bad SQL grammar [SELECT user_id, password, enabled FROM ( SELECT MBER_ID AS USER_ID, MBER_PWD AS PASSWORD, 1 AS ENABLED FROM TB_MOVIE_CMPNY_MBER WHERE 1=1 ) T WHERE T.USER_ID = ?]; nested exception is java.sql.SQLException: 부적합한 열 이름
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:126) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:144) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94) ~[spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at egovframework.com.sec.security.filter.EgovSpringSecurityLoginFilter.doFilter(EgovSpringSecurityLoginFilter.java:226) [classes/:?]
USER_ADRES, USER_EMAIL, USER_SE, ORGNZT_ID, ESNTL_ID,
(select a.ORGNZT_NM from COMTNORGNZTINFO a where a.ORGNZT_ID = m.ORGNZT_ID) ORGNZT_NM
FROM COMVNUSERMASTER m WHERE CONCAT(USER_SE, USER_ID) = ?"
선언된 테이블이 아닌 다른 테이블에서 정보를 불러오려고하는데
다른 쿼리를 작성해서 넣을 경우 부적합한 열 이름으로 오류가 계속 발생합니다.
(user_id, password, enabled는 디폴트도 select문에 넣었음)
오류 내용
org.springframework.security.authentication.InternalAuthenticationServiceException: PreparedStatementCallback; bad SQL grammar [SELECT user_id, password, enabled FROM ( SELECT MBER_ID AS USER_ID, MBER_PWD AS PASSWORD, 1 AS ENABLED FROM TB_MOVIE_CMPNY_MBER WHERE 1=1 ) T WHERE T.USER_ID = ?]; nested exception is java.sql.SQLException: 부적합한 열 이름
at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:126) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:144) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199) ~[spring-security-core-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94) ~[spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) [spring-security-web-4.2.1.RELEASE.jar:4.2.1.RELEASE]
at egovframework.com.sec.security.filter.EgovSpringSecurityLoginFilter.doFilter(EgovSpringSecurityLoginFilter.java:226) [classes/:?]
A
안녕하세요.
표준프레임워크센터 입니다.
다음 메시지가 출력되는 것으로 보아
쿼리문 자체에 문제가 있는것으로 보입니다.
PreparedStatementCallback; bad SQL grammar
해당 쿼리문을 복사 붙여넣기 하셔서
DB클라이언트에서 수행해서
검증해 보시기 바랍니다.
관련 위키가이드는 다음과 같습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
Server Security 항목에 다음 부분을 참조하셔도 됩니다.
- Architecture
- Authentication
- Authorization
- 설정 간소화
감사합니다.
표준프레임워크센터 입니다.
다음 메시지가 출력되는 것으로 보아
쿼리문 자체에 문제가 있는것으로 보입니다.
PreparedStatementCallback; bad SQL grammar
해당 쿼리문을 복사 붙여넣기 하셔서
DB클라이언트에서 수행해서
검증해 보시기 바랍니다.
관련 위키가이드는 다음과 같습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
Server Security 항목에 다음 부분을 참조하셔도 됩니다.
- Architecture
- Authentication
- Authorization
- 설정 간소화
감사합니다.