본문 바로가기

dev151

[PRBM] mybatis 설정간 에러 발생 Spring - Mysql 연동간에 mysql-connector를 설정해주지 않아서 발생한 에러 java.sql.SQLException: No suitable driver found for jdbc:log4jdbc:mysql://127.0.0.1:3306/{DB_NAME}?useUnicode=true&characterEncoding=utf8 아래와 같이 를 추가해줘야 한다. mysql mysql-connector-java 8.0.28 2022. 8. 6.
[PRBM] log4jdbc-log4j2 설정 간 에러 발생 log4jdbc-log4j2 설정 중에 아래와 같은 내용의 에러가 발생했는데. Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.NoClassDefFoundError: Unable to find Log4j2 as default logging library. Please provide a log.. 2022. 8. 6.
[Spring] UserDetailsService 활용 JDBC를 이용하는 방식도 DB를 처리해서 편리하게 사용할 수 있기는 하지만 사용자의 여러 정보들 중에 제한적인 내용만을 이용한다는 단점이 있다. username, password, authority, enabled 컬럼을 이용하여 user-by-username-query / authorities-by0username-query 을 통해서 사용자의 권한을 확인 했는데. 이외의 다양한 이름이나, 이메일 등의 자세한 정보를 이용할경우에는 충분하지 못한다는 단점이 있다. 이러한 문제점을 해결하기 위해서는 직접 UserDetailsService를 구현하는 것이 좋은데 흔히 Custom UserDetailsService라고 합니다. 이를 이용하면 사용자가 원하는 객체를 인증과 권한 체크에 사용할수 있기 떄문입니다.. 2022. 8. 5.
[PRBM] Junit Error 해결 (Mybatis mapping) Jnuit 을 통해서 mapper Test를 하던 도중에 에러가 발생하였다. resultMap을 통한 쿼리문으로 property, column을 지정해 준다음에 해당 결과를 생성한 ResultMap으로 리턴 받는 거였다. Test Code는 다음과 같았고 실행 결과 아래와 같은 에러가 발생했다. java.lang.AbstractMethodError: Receiver class net.sf.log4jdbc.sql.jdbcapi.ResultSetSpy does not define or inherit an implementation of the resolved method 'abstract java.lang.Object getObject(java.lang.String, java.lang.Class)' of i.. 2022. 8. 5.
[Spring ] JDBC를 이용한 인증/권한 처리 지금까지의 Spring security의 인증과 권한은 지정해 놓은몇개의 아이디와 패스워드를 통해서 접근이가능했다. 이제부터는 JDBC를 이용하는 방식을 한번 알아보자 스프링 시큐리티에서는 사용자를 확인하는 '인증(Authentication)' 과 권한등을 부여하는 '인과(Authorization)'으로 나누어 볼 수 있습니다. Authenticatoin Manager suers-by-username-query, authorities-by-username-query 를 통해서 인증을 받은 후 .CustomLoginSuccessHandler 으로 이동한 후 마지막으로 Handler에서 지정한 곳으로 이동하는것으로 볼수 있다. DB의 컬럼명과 security-context.xml, JSP 속성명 을 일치 시.. 2022. 8. 4.
[Spring] log4jdbc-log4j2 설정 DB 작업간에 에러 또는 정보를 얻기 위하여 log 설정을 한다. 우선 가장 먼저 해야 할 것은 1. pom.xml에 Dependency 를 추가해 준다. org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 2. root-context.xml 에서 dataSource 설정을 변경해 준다. >> driverClassName / url 이 조금 수정되었다. 3. log4jdbc-log4j2 설정 파일을 등록한다. >> log4jdbc.log4j2.properties log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator >> logback.xml logback.xml 작성 방법 사용할 .. 2022. 8. 3.
[PRBM] Tomcat Error [프로젝트 실행중 아래와 같은 이유로 실행되지 않았음] ========================================================================================= SEVERE: 필수 항목인 서버 구성요소가 제대로 시작되지 못하여, Tomcat이 시작될 수 없습니다. org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. caused by: java.lang.illegalargumentexception: 이름이 [spring_web]인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 .. 2022. 8. 3.
[Spring] Spring security - custom login page 태그를 보면 action이 /login을 통해서 이루어 지며, Post 방식으로 데이터를 전달해야 합니다 또한 input 태그의 name 속성은기본적으로 username, password 속성을 사용합니다. 또한 마지막으로 hidden에서 ${_csrf.parameterName}, ${_csrf.token} 을 확인할 수 있는데 페이지 속성보기를 통해 보면 아래와 같이 나타나는것을 확인 할 수 있습니다. 위에서 작한성 action이나 form 태그의 속성들은 기본 값으로 변경할 수 있습니다.. security-context.xml을 통해서 =============================================================================== CSRF(Cross-si.. 2022. 8. 2.
[Spring] spring security (setting, authentication 처리, 403처리) Spring Security pom.xml Dependency add security-context.xml 생성 [ servlet-context, root-context 와 별개로 따로 설정한다 ] Spring security 설정이 MVC에서 사용되기위햐서는 필터를 이용해서 스프링 동작에 관여 하도록 설정합니다. web.xml 설정 1. security-context.xml 을 읽을수 있도록 지정해주고 2. Filter 를 지정해 줍니다. 3. security-context.xml에서 를 생성해줍니다. 해당 태그가 있어야 security-context,xml이 실행됩니다. 시큐리티가필요한 URI 설계 1. /board/all : 로그인을 하지 않은 사용자도 접근 가능한 URI 2. /board/writ.. 2022. 7. 30.
[Spring] REST API , Ajax Java Script Option Notation - 자바스크립트 객체 표기법 { 속성명1 : 속성값, 속성명2 : 속성값2 ... } >> 객체 배열 [{ 속성명1 : 속성값 },{ 속성명2 : 속성값2}] >> Map {키1:{속성명:속성값,.., 키2 : {속성명 : 속성값,....} >> Stringify() 와 parse() - JS객체를 서버로 전송하려면, 직렬화(문자열로 변화)가 필요 * JSON.stringify() - 객체를 JSON문자열로 변환 (직렬화, JS객체-> 문자열) { name = "John", age:30} [ JS객체 ] ======> { "name" : "John", "age" : "30" } [ String ] - 서버가 보낸 데이터(Json문자열)를 JS객체로 변환할.. 2022. 7. 15.