본문 바로가기
728x90
반응형
SMALL

Spring Security7

패스워드 암호화 마지마긍로 패스워드를 암호화 해보겠습니다. 패스워드 암호화 부분은 스프링 시큐리티가 제공하는 BCryptPasswordEncoder의 사용을 위해 구현을 잠시 미뤄뒀었습니다. 우리가 UserController와 UserService 를 구현할 당시에는 스프링 시큐리티 디펜던시를 설정하지 않았었기 때문입니다. 이제 Userservice를 수정해줍니다. 기존의 getByCredentials 매서드를 수정해주어야합니다. public UserEntity getByCredentials(final String email, final String password, final PasswordEncoder passwordEncoder) { final UserEntity originalUser = userRepositor.. 2021. 12. 13.
TodoController에서 인증된 사용자 사용하기 지난 글들을 작성할때 , Todo 리스트에 대한 CRUD 기능을 구현할때 고정적인 아이디를 사용했습니다! 이땐 로그인 기능이 구현되지 않았어서 고정적으로 사용했었습니다. 그리고 이 기능을 아직도 사용하고있었습니다. 이제 이 메서드들이 인증된 사용자 아이디를 사용할 수 있도록 각 메서드에 userid라는 매개변수를 추가해줍시다! 우선 최초 url 매핑을 담당하는 SO부분을 수정시켜줍시다. @AuthenticationPrincipal String userId 해당 어노테이션을 이용해서 로그인되어있는 권한을 가져오는겁니다. 그리고 컨트롤러 오브젝트 단에서도 아이디를 매개변수로 받아서 해당 아이디로 셋팅하게됩니다. 그런데말입니다... userId는 도대체 누가 어떻게 String 인것을 알고 넘겨주는 걸까요? .. 2021. 12. 12.
REST security를 구현해보자! 당분간 User 레이어를 구현할것입니다!!! UserEntity 를 구현한다. UserRepository 구현 UserService 구현 UserDTO/UserController 구현 사용자는 id, username, email, password로 로그인을하고 구성되어있습니다.! 그래서 해당 정보들이 들어가는 Entity를 구현해봅시다 package com.unoSpringBoot.study.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.G.. 2021. 12. 2.
프로젝트(2) AJax와 스프링 시큐리티 처리 태그를 이용하는 방식 외에 많이 사용되는 Ajax를 이용하는 경우 약간의 추가적인 설정이 필요하다. 해당 Ajax부분을 로그인한 사용자만이 해당 기능들을 사용할 수 있도록 수정해주어야 한다. 스프링 시큐리티가 적용되면 POST, PUT, PATCH, DELETE와 같은 방식으로 데이터를 전송하는 경우 추가적으로 X-CSRF-TOKEN와 같은 헤더 정보를 추가해서 CSRF토큰값을 전달하도록 수정해야한다. Ajax는 JS를 이용하기 때문에 브라우저에서는 CSRF토큰과 관련된 값을 변수로 선언하고, 전송 시 포함 시켜주는 방식으로 수정하자. 게시물등록 시 첨부파일의 처리 스프링 시큐리티가 적용된 후에는 게시물에 파일첨부가 정상적으로 동작하지 않는다. 게시물의 등록이 POST로 .. 2021. 10. 21.
프로젝트(1) 기존 프로젝트에 그동안 공부했던 스프링 시큐리티를 접목하는 작업을 진행하도록 하겠다. 그전에 해당 기능은 -로그인과 회원 가입 페이지의 작성 - 기존 화면과 컨트롤러에 시큐리티 관련 내용 추가 - Ajax부분의 변경 로그인 페이지 처리 기존의 로그인화면은 정말 끔찍하다.. 어쩌면 스프링에서 기본으로 주는화면급이었다. 똑같았다 그냥 그럼 조금 이쁘게 부트스트랩을 적용하고, 아까의 로그인의 화면의 태그라던가 id는 동일하게 설정한뒤 생성해보았다. Please Sign In Remember Me Login 폼태그가 붙고, 거기에 컨테이너 div가 붙고 해서 뭔가 복잡해 보이는데 화면으로보면 크게 달라진것은 없다. 귀찮다면 그전의 화면을 계속사용해도 문제는 없다. 하지만 JSTL이나 스프링 시큐리티의 태그를 사.. 2021. 10. 21.
커스텀 UserDetailsService JDBC를 이용하는 방식을 DB를 처리해서 편리하게 사용할 수 있기는 하지만, 제한적인 내용만만을 이용한다는 단점이있다. 스프링 시큐리티에서 username이라고 부르는 사용자의 정보만을 이용하기 때문에 충분하지 실제 프로젝트에서 사용자 의 이름이나 이메일등의 자세한 정보를 이용할 경우에는 부족하다. 이런문제를 해결하기 위해서 직접 UserDeatilasService를 구현하는 방식을 이용한다. 흔히 커스텀 UserDetailsService를 구현하는데, 원하는 객체를 인증과 권한 체크에 활용 할 수 있다. 스프링 시큐리티의 UserDetailsService 인터페이스는 단 하나의 메서드만이 존재한다. loadUserByUsername()이라는 메서드의 반환 타입인 UserDetails 역시 인터페이스로.. 2021. 10. 19.
Spring Web Security 직접 프로젝트를 통해서 스프링 시큐리티의 동작을 먼저 살펴보자 스프링 시큐리티 스프링의 여러 하위 프로젝트 중에 하나이므로,https://spring.io/projects/spring-security Spring Security Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements spring.io 그리고 다양한 처리를 위.. 2021. 10. 18.
728x90
반응형
LIST