분류 전체보기217 Authorization(인가)-인가 내부 절차 & 권한 설정하기 지난번에는 Authentication(인증)에 대해 알아보았고, 이번에는 사용자마다 접근 권한을 다르게 설정하는 authorization(인가)에 대해서 알아보겠습니다. 블로그에 글을 쓰려면 해당 블로그에 대한 관리자 권한이 있어야 글 쓰기 및 수정이 가능합니다. 해당 블로그 수정 권한이 없는 유저는 글 수정 페이지에 접근할 수가 없습니다. 웹사이트를 이용할 때 이런식으로 권한을 차등적으로 부여하는 경우가 상당히 많이 있습니다. Spring Security에서도 이런 권한 부여와 관련된 기능을 제공하는데, 내부 절차는 어떤지와 어떻게 구현하는지 차근차근 알아보겠습니다. Authorization 내부 절차 인가 작업은 FilterSecurityInterceptor에서 이루어질 수 있습니다. console창.. 2022. 8. 1. MapStruct 사용 시 여러 Constructor가 있을 때의 문제점 객체 간 mapping을 위한 코드의 양을 많이 줄여주는 Mapstruct. 구체적인 사용법을 모르고 있다가 의도대로 MapperImpl이 생성되지 않게되며 파워 구글링 덕에 궁금증을 해결했습니다. 공식 문서가 왜인지 한번에 나오지 않아서 이 사이트 저 사이트 전전하다가 겨우 찾았습니다 ㅎㅎ 다행히도 공식 문서 안에는 궁금해 하던 내용이 잘 나와있었고, 이후에는 최소한 이 부분에 있어서는 헤매지 않을 것 같아서 안심입니다. 먼저 궁금증이 폭발했던 상황은 이렇습니다. Spring Data JPA를 사용하고 있기 때문에 Entity를 만들었고, PostDtoToEntity mapper가 필요했습니다. 처음 Entity code는 아래와 같았습니다. @Entity를 사용했기 때문에 @NoArgsConstruc.. 2022. 7. 31. Authentication(인증) (2) - 로그인 절차 & 코드구현 대표적인 인증방식은 username과 password를 html form을 통해 전달받는 방식입니다. Filter에 대한 이전 포스팅에서 공식문서에 기재된 SecurityFilter의 종류를 보여드렸습니다. 그 filter들 중에 "UsernamePasswordAuthenticationFilter"라는 filter가 username과 password를 이용한 인증을 시도할 때 사용이 됩니다. 위의 flowchart가 인증 절차인데, 복잡해 보이지만 큼지막한 흐름만 얘기해보겠습니다. 1. Flowchart의 주황색 부분에 여러 SecurityFilterChain 중에 UsernamePasswordAuthenticationFilter가 동작하는 것을 볼 수 있습니다. 이제보니 filter 이름도 직관적으로 .. 2022. 7. 30. Authentication(인증) (1) - 사용자 정보 저장하기 & 비밀번호 암호화하여 저장하기(DelegatingPasswordEncoder는 무엇인가?) 인증이란 resource에 접근하려는 사람이 누구인지 판별하는 과정을 의미합니다. username과 password를 이용한 인증방식이 일반적입니다. 사용자가 username과 password를 입력하면 일련의 과정을 거쳐 사용자 정보가 저장된 DB에서 사용자를 조회함으로서 인증을 하게 됩니다. 사용자 정보 DB에 해당 정보가 있다면 인증에 성공하고 없다면 실패하게 됩니다. 인증에 성공하게 되면 인증정보를 토대로 권한부여(인가, authorization)까지도 수행할 수 있게 됩니다. 그러니 첫 단계인 인증이 잘 이루어져야 그 이후의 절차들도 견고하게 수행이 될 수 있을 것 같습니다. 그런데 이런 인증이 일어나려면 먼저 인증할 사용자 정보를 생성하고 사용자 정보 DB에 데이터를 저장해야 됩니다. 내가 자.. 2022. 7. 29. Spring Security의 작동 방식 알아보기 Spring Security는 Spring MVC 영역 전에 작업이 수행됩니다. Spring MVC를 공부하면서 자주 보게되는 Spring MVC flow chart인데요. 위 차트에서는 Incoming request가 바로 Front Controller(=Dispatcher Servlet)으로 전달되는 것으로 표현되어 있습니다. 맞는 말이지만 사실 Front Controller에 전달되기 전에 'Filter'라는 것들을 거치게 됩니다. 보라색 상자로 표현된 Client가 웹브라우저로 HttpRequest를 보내면, Servlet Container는 'FilterChain'이라는 Filter들이 연결되어 순서대로 실행될 수 있는 체인을 생성합니다. (Filter Chain은 Servlet Containe.. 2022. 7. 28. IntelliJ 콘솔 한글 깨짐 해결법 도움말 -> 사용자지정VM옵션편집 메뉴 클릭하여 vmoptions에 -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 이 두 설정을 추가해주니 정상적으로 한글이 콘솔에 출력되었습니다. 참고자료 https://da-nyee.github.io/posts/intellij-console-encoding-issue/ [IntelliJ] 콘솔 한글 깨짐 (Console Encoding Issue) Introduction da-nyee.github.io 2022. 7. 28. 이전 1 ··· 16 17 18 19 20 21 22 ··· 37 다음 반응형