2021-06-02

0602 modify, remove 처리

 

1. get으로 유저가 페이지를 불러오더라도 remove, modify 버튼이 안보이도록 제어

자바스크립트로 안보이게했는데. 이거 괜찮을까? 하는 걱정은 있다... sec: authentication으로 값을 가져오려고 했는데 자꾸 문법에러나구. null익셉션 터지기도 해서.. 일단은 이렇게 해본다. 



2. user1@mail.com 인 유저가 modify페이지를 불러왔을 때의 화면



3. user100@mail.com ( 글을 등록한 유저) 가 modify페이지를 불러왔을때의 화면



4. post방식의 전송은 backend단에서 막아주도록 한다. 


-------------------------------------------------------------------------


자바스크립트로 버튼 숨기기 꼼지락하던 코드를

Spring el + thymeleaf의 if태그로 해결했다!!! 더 코드가 간결해졌다. ㅜwㅜ 감격......감격......

0602 register 페이지 처리

 




로그인 한 사용자만 글을 등록할 수 있도록 @PreAuthorized처리하고

해당 유저정보를 view에 보낸다


로그인 한 유저의 이메일이 value값으로 들어가며 readonly를 걸어서 임의로 이메일명을 작성할 수 없도록 한다

0602 @PreAuthoried로 메소드 별 처리하기

원인을 아직 파악하지 못했지만 - 

hasRole표현식이 먹질 않는 문제가 있다


표현식을 바꾸었더니 잘 된다...
왜지...왜냐.... 더 알아보아야 겠음.

--------------------------------------


에러해결!!


권한설정할때 상수값으로 "ROLE_"을 붙여줘야 하는데 이걸 빼먹어서였다!!!



@PreAuthorize("hasRole('USER')")
@PreAuthorize("hasRole('ROLE_USER')")

둘다 시도해봤는데 둘다 가능함!!

0602 Null 예외처리

 NullPointerException 발생







0602 로그인/로그아웃 HTML처리

 1. HttpResponse로 redirect썼는데 에러가뜬다- 다른 페이지로 넘어가질 못하고 흰 공백이. 

지우고 다시!!! 페이지 단에서 조절해야겠다


2. 수정후


3. Security context안에있는 객체를 @AuthenticationPrincipal 어노테이션을 활용하여 손쉽게 뽑아낼 수 있음. 로그인 한 유저가 또 로그인 하려고 강제 /customLogin 페이지 접속시의 문제



4. 따라서 sec:authenticate 태그를 이용하여 만일 유저가 로그인한 상태라면 ( = 인증, authentication 이 완료된 상태라면) 해당유저의 name을 보여주도록 , 

인증되지 않은 유저인 경우에만 로그인 화면을 보여주도록 분기


5. 또한 헤더의 url도 인증완료한 유저/익명유저에 따라 분기하여 보여줄수있도록 설정한다. 


6. 만일 로그인한 유저가 강제적으로 /customLogin에 접속하면 로그인 폼이 아니라 위와 같은 화면을 보여준다. 또한 헤더부분의 nav bar에 logout이라는 a태그만 보이는 것을 확인할 수 있다. 

0602 로그인/로그아웃 후 처리

 


1. 기본 인덱스 페이지 ->/board/list로 수정

2. 로그인 페이지에서 error발생시(스프링이 기본적으로 리다이렉트 해줌) -> 메시지표시

3. 로그아웃시 로그인 페이지로 이동(스프링 자동설정) -> 메시지표시

4. 로그인한 유저가 로그인 페이지로 get이동시 -> 로그아웃페이지로 리다이렉트

5. 로그아웃 페이지 설정& 시큐리티 config수정. post로 보내면 나머지는 스프링이 알아서 해준다. 

0602 Spring Security 접근제어

 

1. 로그인한 유저라고 할지라도(인증에 성공하였다고 할지라도) 접근권한이 없는 페이지를 방문하면 자동으로 AccessError페이지로 리다이렉트해주는 AccessErrorHandler를 구현한다. 서블릿의 response를 직접 활용할 수 있다.

2. Security설정파일에 위와 같이 만든 핸들러를 Bean등록하고 http의 exceptionHandling에 맵핑해준다.


3. Controller에 @GetMapping으로 페이지uri를 등록

4. board/list 요청 -> 로그인 페이지 -> board/list로 리다이렉트 -> board/register 요청 -> accessError페이지로 리다이렉트되는 흐름을 알 수 있다. 
핸들러를 구현하지 않아도 스프링이 접근제어를 해주긴 하지만, 커스텀 페이지를 만드는 것이 좋고, 또 redirect를 이용해서 url을 바꾸어 준다.  


0328 fdisk, mkfs, mount, fstab

 1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다.  - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다.  - 마지막에 w를 해야 실제로 반영이 된다.  3. mkfs를 하여 어떤 파일시스...