ALL Post 204

Spring Security - UserDetailsService

UserDetailsService JDBC를 이용한 인증방식의 단점은 사용자의 여러 정보들 중에서 제한적인 내용만을 이용한다는 점이다. 스프링 시큐리티에서는 username이라고 하는 정보만을 이용하므로 이름이나 이메일 등 자세한 정보를 이용할 경우 충분하지 못하다. UserDetailsService이스를 구현하는 방식으로 이러한 문제를 해결할 수 있다. UserDetailsService는 loadUserByUserName이라는 하나의 메서드만 가지고 있다. loadUserByUserName()는 UserDetails를 반환하는데, UserDetails는 사용자의 정보와 권한 정보를 담는 인터페이스다. UserDetails는 getAuthorities(), getPassword(), getUserName..

Spring legacy 2020.09.13

Spring Security - 기존 테이블을 이용하는 인증방법

기존의 테이블을 이용한 시큐리티 인증 방법 1. 테이블 설계 회원 테이블과 권한 테이블 -- 회원 테이블 create table tbl_member( userid varchar(50) not null primary key, userpw varchar(100) not null, username varchar(100) not null, regdate timestamp default now(), moddate timestamp default now(), enabled char(1) default '1' ); -- 권한 테이블 create table tbl_member_auth( userid varchar(50) not null, auth varchar(50) not null, constraint fk_memb..

Spring legacy 2020.09.13

[MySQL]Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. "안전 업데이트 모드를 사용 중이며 KEY 열을 사용하는 WHERE없이 테이블을 업데이트하려고했습니다. 안전 모드를 비활성화하려면 기본 설정-> SQL 편집기에서 옵션을 토글하고 다시 연결합니다." MySQL에서 update하던 중 에러가 발생했다. 게시글 목록을 담아두는 테이블 tbl_board에 각 게시글에 달린 댓글 수를 조회할 수 있도록..

ERROR!!!!!!! 2020.09.13

자바스크립트를 이용한 페이징 삽질 - 일반 함수의 this와 화살표 함수의 this는 다르다

JS 삽질기 js에 미숙하다 보니까 별것 아닌데 몇 시간을 삽질했다. 나는 여기서 a태그의 href속성을 받아오려고 했다. 모던 자바스크립트를 써보겠다고 화살표 함수를 고집했다. 자꾸 this값이 오지 않았다. 화살표 함수 때문일 것이라고는 1도 생각 못하고 계속 딴짓만 했다. 원하는 결과는 페이지 넘버 3페이지면 3. 5페이지면 5였는데, 자꾸 이런 결과만 나왔다. 속성을 뒤져봐도 내가 원하는 값을 가진 프로퍼티는 없었다. 도대체 뭘까? 별 걸 다 해봤는데. 그러니까 $(document).ready(() => {....})로 선언했던 것을 $(document).ready(function() {....})로 다시 바꿔도 보고. 그러면서도 화살표 함수를 바꿀 생각을 왜 하지 못했는지 모르겠다. 난 표현식만..

ERROR!!!!!!! 2020.09.13

👿[Spring Error] java.lang.IllegalStateException: No primary or default constructor found for class || @Builder && @NoArgsConstructor

java.lang.AssertionError: Request processing failed; nested exception is java.lang.IllegalStateException: No primary or default constructor found for class com.coco.domain.BoardVO at org.junit.Assert.fail(Assert.java:89) at com.coco.controller.BoardControllerTest.registerTest(BoardControllerTest.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAc..

ERROR!!!!!!! 2020.09.13

👿[Spring Error] java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig

MockMvc로 컨트롤러 테스트 중 에러 @Test public void getAllPostTest() { ModelMap result; try { result = mockMvc.perform(MockMvcRequestBuilders.get("/board/list")) .andReturn() .getModelAndView() .getModelMap(); assertNotNull(result); log.info(result); } catch (Exception e) { fail(e.getMessage()); } } java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig at org.springframework.test.context.web.Ab..

ERROR!!!!!!! 2020.09.13

👿 [Spring Error]java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy

MyBatis - Spring 연결 테스트 중에 이런 에러가 발생했다. INFO : org.springframework.test.context.support.DefaultTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.con..

ERROR!!!!!!! 2020.09.13

👿[Git Error] Lf will be replaced by CRLF in README.md.

가끔 git add하다 보면 이런 에러가 발생한다. warning: Lf will be replaced by CRLF in README.md. The file will have its original line endings in your working directroyWindow는 Line Ending으로 CR(Carriage-Return, \r)과 LF(Line Feed, \n)를 사용한다. 반면 유닉스나 맥은 LF만 쓴다. 윈도에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변경하고 저장소로 보낼 때는 CRLF 를 LF 로 변경하도록 true 로 설정한다. Windows git config --global core.autocrlf true

ERROR!!!!!!! 2020.09.13

Servlet/JSP에서 Ajax 사용

Ajax(Asynchronous Javascript XML) 비동기 통신. 클라이언트 - 서버 간에 XML 또는 JSON 데이터를 주고 받는 기술이다. 페이지 이동 없이 데이터 처리가 가능하다. 새로 고침 없이 화면이 변한다! 제이쿼리 - Ajax 사용법 $.ajax({ type:'post or get', async:'true or false', url:'요청할 url', data:{서버로 전송할 데이터}, dataType: '서버에서 전송받을 데이터 형식', success: { //정상 요청, 응답 시 처리 작업 }, error : function(xhr,status,error) { //오류 발생 시 처리 }, complete:function(data,textStatus) { //작업 완료 후 처리 }..

UriComponentBuilder

UriComponentBuilder 게시물을 POST방식으로 처리하고 나서도 페이지나 검색 조건을 유지하기 위해서는 페이지 정보와 검색 조건, 검색 키워드 정보를 RedirectAttribute객체로 직접 지정해야 했다. @PostMapping("/modify") public String modify(BoardVO boardVO, PageInfo pageInfo,RedirectAttributes redirect) { log.info("/board/modify"); log.info("BoardVO : " + boardVO); int result = boardService.modify(boardVO); log.info("MODIFY RESULT : " + result); redirect.addAttribut..

Spring legacy 2020.09.12