11. 스프링 시큐리티 로그인 과정
·
프로젝트/블로그 제작(중단)
로그인 요청이 오면 1. SecurityConfig.class의 loginProcessingUrl => /auth/loginProc이 가로챔 2.가로챈 정보를 PrincipalDetailServiced의 loadUserByUsername이 username을 findByUsername로 비교해서 principal 객체를 만들고, 값을 리턴하기 전 3. 다시 SecurityConfig.class의 사용자가 입력한 패스워드를 encodePWD()로 암호화 후 , db의 값과 비교해서 정상인지 확인 후 4. 그 값을 스프링 시큐리티 영역의 user정보를 저장함. PrincipalDetailServiced의 PrincipalDetail 로 감싸져서 저장이 됨 (PrincipalDetail가 UserDetails를..
10.비밀번호 해쉬화 후 회원가입하기
·
프로젝트/블로그 제작(중단)
그 전에, ddl-auto를 create로 바꾸고 한번 실행시켰다가 다시 update로 바꿔줌(데이터 날리기 위해) 이제 비번 해쉬화된거아니면 안되게 할거임 해쉬의 특징
9. 스프링 시큐리티 로그인+ 커스터마이징(because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. 오류)
·
프로젝트/블로그 제작(중단)
pom.xml org.springframework.security spring-security-taglibs org.springframework.boot spring-boot-starter-security org.springframework.security spring-security-test test 추가!그리고 UserApiController의 전통적인 로그인 (이전 글 참고) 그리고 실행하면 스프링 시큐리티가 어떤 페이지를 들어가든 가로채서 로그인을 하게 한다아이디는 그냥 user고비번은 저 위에있는 해쉬넘버=> 기본적으로 스프링이 세션을 만들어서 저장해줌(principal에)그리고 스프링 시큐리트 태그라..
8. 전통적인 방식의 로그인
·
프로젝트/블로그 제작(중단)
로그인 폼부터, Username Password 로그인 get방식 로그인은 id, pw가 주소에 남으니 위험, post방식 user.js let index = { init: function(){ $("#btn-save").on("click", ()=>{ // function(){} 아니고 ()=>{}? this를 바인딩하기 위해서!! // 그냥 function 쓰면 this 는 window객체를 가리킴 this.save(); }); $("#btn-update").on("click", ()=>{ this.update(); }); }, save: function(){ //alert('user의 save함수 호출됨'); let data = { username: $("#username").val(), passw..
7. 회원가입 세팅+ api없는 회원가입
·
프로젝트/블로그 제작(중단)
이 전글에서 이야기 했듯이번 프로젝트에서는 모든 데이터를 json 방식으로 넘겨  ajax로 처리할것이유!더보기Ajax를 사용하는 첫번째 이유 : 일반적으로 서버로 부터 응답받을때 웹은 HTML파일을 받고 앱은 데이터(JSON)를 받는다. 이것은 서버를 이원화하여 구축한 것을 의미하며 이때 '서버를 통합하여 각각의 클라이언트에게 응답해줄순 없을까?'라는 의문점에서 고안된 방법이 Ajax통신이다.Ajax통신을 사용하면 웹은 서버로부터 데이터(JSON)를 리턴받을 수 있으며 그렇게 되면 서버의 분리 필요없이 하나의 서버로 각각의 클라이언트 요청을 받아 응답해줄수 있게된다.대신 웹클라이언트는 추가적인 요청을 통해 HTML파일을 받아야한다. Ajax를 사용하는 두번째 이유 : 비동기 통신을 하기 위해서이다.(순..
6. 프론트 (bootstrap4)- 화면 만드는 대로 수정
·
프로젝트/블로그 제작(중단)
https://www.w3schools.com/bootstrap4/bootstrap_navbar.asp Bootstrap 4 Navigation Bar W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com 1. 메뉴와 푸터 package com.cos.blog.controller; import org.springframework.data.domain.Pageable; impor..
5. 더미데이터 delete테스트+exception처리+ 무한참조방지
·
프로젝트/블로그 제작(중단)
1.더미 데이터 delete @DeleteMapping("/dummy/user/{id}") public String delete(@PathVariable int id){ try { userRepository.deleteById(id); // } catch (Exception e){ // 좀 더 정확한 exception 확인 } catch (EmptyResultDataAccessException e){ return "삭제에 실패하였습니다. 해당 id는 db에 없습니다."; } return "삭제되었습니다. id :"+id; } 삭제에서 일어날 수 있는 오류 중 대표: 없는 데이터 넣었을 때 그래서 정확한 오류를 적으려면 EmptyResultDataAccessException 귀찮으면 그냥 EXCEPTION..