자바 스프링

자바 스프링/부트 블로그 JPA 프로젝트

#27 회원 수정

회원정보 수정 header.jsp 이제 회원정보 버튼을 눌렀을 때 수정할 수 있는 기능을 구현해야 한다. 그러면 /user/updateForm으로 가는 Controller를 작성해야 한다. UserController에서 다음과 같이 /user/updateForm으로 가는 코드를 작성하였다. /user/updateForm을 생성해보자 user폴더에 있는 joinForm을 복사해 붙여넣고 수정한다. updateForm.jsp username은 수정할 수 없게 readonly를 설정한다. 그리고 현재 header.jsp에 작성되어 있는 principal 코드를 이용해 updateForm에 value값을 줄 수 있다. updateForm을 다음과 같이 작성한다. principal을 이용해 value값을 설정하고..

자바 스프링/스프링 공부

스프링의 작동 원리 - 로그인편

로그인을 통한 스프링 작동 원리 설명 1. 톰캣이 켜져있을 때 사용자가 request 요청을 하면 2. request가 필터에서 필터링 해줄 것들이 필터가 되고 3. 디스패처한테 들어온다. 디스패처는 컨트롤러 하나를 메모리에 띄워야한다. 4. /login이 들어왔다면 /login이라는 주소가 있는 것을 컨트롤러를 메모리에 띄운다. @PostMapping("/login")을 가지고 있는 메서드가 있는 컨트롤을 띄운다. 그 컨트롤러는 이제 username과 password를 받는다. 컨트롤러는 이렇게 username과 password를 받는 역할에서 끝난다. 컨트롤러의 역할은 어떤 주소 요청이 왔을 때 주소 요청에 대한 함수를 하나 만들어서 그 함수의 데이터(body data)를 받는 역할이다. 5. 이제 ..

자바 스프링/부트 블로그 JPA 프로젝트

#26 CRUD 게시판 - Update, Delete (수정, 삭제)

Delete (글 삭제하기) 글 삭제하기 이 삭제 버튼(id=btn-delete)를 누르면 게시글이 삭제되도록 자바스크립트가 동작하도록 할 것이다. 우선 detail.jsp에 다음 코드를 작성해 id를 설정한다. board.js에 넘겨야 할 데이터는 id값을 찾아서 거기 있는 텍스트를 뽑아야 한다. 즉, {board.id}가 전달되어야 한다는 것이다. 이제 board.js로 가서, 자바스크립트를 작성한다. 그런데 이렇게 작성하면 삭제가 제대로 동작하지 않는다. 이걸 이해하기 위해서는 val()과 text() 정도는 이해하고 있어야 한다. * 예시로 보는 html(), val(), text() $(셀렉터).html : 태그, 문자열 모두 가져옴 var word = $("#daram").html(); 다람쥐..

자바 스프링/부트 블로그 JPA 프로젝트

#25 CRUD 게시판 - Read (목록,페이징,상세보기)

글 목록 보기 이전에 적었던 글을 이제 보이게 하자. 해당 페이지로 올 때 Select를 해야 한다. 메인페이지(index)로 갈 때 BoardService를 연결하자 메인페이지로 갈 때 데이터를 가져와야 한다. 스프링에서는 이 데이터를 가져갈 때 Model이 하나 필요하다. model에 데이터를 담기 위해 addAttribute() 메소드를 사용한 것이다. 누가 "/"로 주소를 요청하면 model에 글목록을 다 들고 온다. 이 글 목록은 BoardService에서 findAll()로 다 가져올 수 있다. model.addAttribute(String name, Object value) : value 객체를 name 이름으로 추가한다. 이제 boardService에 가서 글목록()을 작성해주자 현재 bo..

자바 스프링/부트 블로그 JPA 프로젝트

#24 CRUD 게시판 - Create (글 작성하기)

CRUD란? CRUD란 Create, Read, Update, Delete를 말한다. 글 작성, 글목록보기(+페이징, +상세보기), 글 수정하기, 글 삭제가 가능한 게시판 구현을 할 것이다. 글 작성 기능 (Create) 우선 BoardController.java로 가서 코드를 작성해준다. application.yml에서 prefix와 suffix를 생각해서 리턴을 작성해야한다. header.jsp에서 메뉴에 걸린 링크가 saveForm인지 확인하고 아니라면 바꿔준다. 그러면 이제 board폴더 안에 있는 saveForm.jsp를 작성해줘야한다. board폴더를 생성하고 index.jsp를 복사해서 saveForm.jsp를 만들어보자 index.jsp를 복사해와서 saveForm.jsp가 이렇게 작성되어..

자바 스프링/부트 블로그 JPA 프로젝트

#23 스프링 시큐리티 로그인

스프링 시큐리티 로그인 코드 작성 로그인 완료 버튼을 폼 안쪽에 넣었기 때문에 버튼을 누르면 action에 있는 주소가 실행된다. 즉 여기서는 (name) username과 password 이 두 개의 값을 가지고 /auth/loginProc의 주소로 이동한다. + 추가 위 사진의 밑줄 친 loginPro를 loginProc로 수정한다. 그런데 현재 UserApiController.java에 /auth/loginPro가 만들어져 있지 않다. 여기서 /auth/loginPro를 만들지 않는 이유는 스프링 시큐리티가 이 로그인 요청을 가로채게 할 것이기 때문이다. 그걸 이제 어떻게 할 것인가? SecurityConfig.java로 가서 다음과 같이 코드를 작성하자 스프링 시큐리티가 로그인을 가로채서 대신 로..

자바 스프링/부트 블로그 JPA 프로젝트

#22 스프링 시큐리티2

시큐리티에 대해서 스프링 시큐리티 : 어플리케이션의 보안(인증 및 권한)을 담당하는 스프링 하위 프레임워크 시큐리티를 이해하기 위해선 관련 용어와 아키텍처(시스템 구성 및 동작 원리)에 대해 확실히 알아야 한다. 용어 : 접근 주체(Principal) : 보호된 대상에 접근하는 유저 인증(Authenticate) : 현재 유저가 누구인지 확인(로그인) , 어플리케이션 작업 수행할 수 있는 주체임을 증명 인가(Authorize) : 현재 유저의 권한을 검사한다. 아키텍처 : 로그인을 예로 들어 설명하면, 사용자가 로그인 요청을 하게 되면 AuthenticationFilter를 거치게 된다. 이 AuthenticationFilter는 로그인 요청이 오면 이 필터가 제일 처음에 작동한다. 로그인 요청을 할 때..

자바 스프링/부트 블로그 JPA 프로젝트

#21 스프링 시큐리티

시큐리티 시작 전 주소 변경 주소 변경 이유 : 권한 때문이다. 이후에 서술! UserController.java의 @GetMapping에서 앞에 붙은 /user 를 삭제한다. header.jsp에 가서 href를 이렇게 변경한다. application.yml로 가서 context-path에서 /blog -> / 로 변경 user.js로 가서 회원가입 ajax에서 url과 href에 blog를 빼서 다음과 같이 만든다. 로그인 ajax에서도 마찬가지이다. 그리고 joinForm.jsp과 loginForm.jsp에 가서 다음과 같이 blog를 빼고 /js/user.js로 수정한다. 스프링 시큐리티 TEST 일단 테스트에 앞서 pom.xml에 들어간다. 주석처리되어있는 다음 라이브러리들의 주석을 해제한다. ..

daramG
'자바 스프링' 카테고리의 글 목록 (2 Page)