로그인 할 때 Member 객체의 password 값에 ,(쉼표) 가 포함되어지는데 왜그런지 모르겠습니다. ㅠ memPassword12 는 테스트 용으로 만들어 봤습니다. debug 를 찍어서 데이터를 확인 했는데 memPassword 부분에서 ,( 쉼표)가 포함됩니다. 테스트로 만든 memPassword12 에는 쉼표가 포함되지있지 않습니다. 컨트롤러에서 debug 를 찍어서 확인 했는데 넘어 올 때 왜 쉼표가 붙는지 모르겠습니다 ㅠ Member 클래스 입니다. UI 에서도 똑같이 1234를 적고 로그인 버튼을 클릭했는데 Member 의 password 에는 쉼표가 붙고 String 으로 받은 password 는 정상적으로 나오는데 무슨 차이가 있는지 모르겠네요 ㅠㅠ
강사님 안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라, 로그인을 하다보니 username으로 대문자가 입력되어도 소문자로 인식하여 로그인을 진행하더라구요. (AdMin -> admin 계정으로 로그인) 이는 Jpa Query Methods로 생성된 SQL문에서 대소문자 구분이 되지 않는 명령이 생성되었기 때문인가요? 직접 binary 등이 포함된 SQL문을 작성하거나, 설정을 직접 수정할 수도 있을 것 같은데 대소문자를 구분하는 통상적인 방법이 궁금합니다.
userDetailsService 가 null값으로 나오는 문제관련하여 해결을 하지 못하고 있습니다. 현재 회원가입후에 로그인 진행할시 미인증유저의 authenticaion객체는 잘 들어오고 있으나, userDetailService가 null이라서 exception처리가 되고 있습니다. @Autowired가 가져올 수 없는 상태라고 생각하여 어노테이션 주입여부를 확인하였는데, 해당부분은 잘 입력이 되어져 있습니다. 특히나 이상한 부분은 passwordEndcoder를 이미 다른곳에서 쓰고 있는데 CustomAuthenticationprovider 클래스 내부에서만 생성이 되지 않고 있습니다. 제가 무엇을 빼먹은 것인지 잘 모르겠어서 질문을 남깁니다.
회원가입은 BCryptPasswordEncoder를 통해 패스워드를 암호화를 했었늗데요 @PostMapping("/joinProc") public String joinPorc(User user) { String rawPassword = user.getPassword(); String encPassword = bCryptPasswordEncoder.encode(rawPassword); user.setPassword(encPassword); userRepository.save(user); return "redirect:/login"; } 로그인할 떄 에는 따로 패스워드를 따로 검증하지 않고 username만 확인하더라구요 @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User userEntity = userRepository.findByUsername(username); if(userEntity != null){ return new PrincipalDetails(userEntity); } return null; } @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } 어느 부분에서 자동으로 BCryptPasswordEncoder를 통해 matches 하고 검증하는건가요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 설명중 이해가 안되서 질문드립니다.! 1:36 설명에서 수정에서 데이터를 바꾼다음에 다시 제목을 눌렀을 때 수정이 되지 않은 내용이 textarea에 보인다고 하셨는데 수정을 하면 DB에 수정내용이 반영되서 다시 제목을 누르면 바뀐 내용이 보이는 상황 같은데요 content 부분만 ajax로 다시 갖고 오는게 이해가 잘 되지 않습니다. 만약에 list로 보여지는 내용 별도의 내용을 더욱 보여줘야 한다면 상세보기를 하는게 맞는거 같은데 현재 예제에서 content 부분만 따로 갖고오는게 이해가 잘 안되네요
안녕하세요. 현재 지금 스프링 부트 2.6.14로 작성중에 궁금한 점이 있습니다. @Secured와 같은 메서드 방식에서 RoleHierarchy가 그대로 적용 되는지 궁금해서 질문드립니다. 혼자서 테스트 할때 ROLE_ADMIN > ROLE_MANAGER > ROLE_USER 구조로 RoleHierarchy를 구성하고 ROLE_ADMIN 권한을 지닌 아이디로 @Secured("ROLE_USER") 메서드를 호출하는데 인가가 안되는데 원래 안되는 것인지 아니면 되는 방향이 있는지 궁금하여 질문드리겠습니다. 감사합니다.
강사님이 작성한 코드대로 진행을 하여 로그인 기능과 jwt발급, 검증 하는 부분까지 전부 정상작동 하는것 까지 확인했습니다. 다만 postman 으로 Header에 jwt토큰 값을 넣고 post방식으로 /logout 메서드를 호출하였으나 404 에러가 뜨고 path는 logout이 아닌 login으로 응답이 내려옵니다. 디폴드 로그아웃 url이 /logout 으로 알고 있어서 별도의 로그아웃 기능을 구현하지 않는 상태인데 제가 잘못 알고 있는 것이 있을까요 ???
서블릿 컨테이너는 스프링에 종속되지 않게 만들어졌다고 이해했는데요. 어느정도 이러한 규제를 완화해주기 위해서 다른 프레임워크가 이용할 수 있는 필터 표준을 만들어줬고 이를 스프링 시큐리티가 구현한게 DelegatingFilterProxy 가 맞을까요? 그러면 DelegatingFilterProxy 가 어떻게 Servlet Fitler 로 주입될 수 있을까요?
상세보기 구현하는 과정에 있어서 궁금한점이 있어서 질문드립니다. get이라는 컨트롤러를 만들고 /board/get?idx=${vo.idx}에서 선택한 idx에 따라서 링크가 이동되는것은 강의에서 잘 풀어주셔서 이해가 잘가는것 같습니다. 질문을 드리자면 단순하게 get?idx <--- 여기서 물음표를 넣으셨는데 이건 정해진건지 궁금하고 어떤 이유에서 ?가 적힌건지 궁금합니다. get!!idx 이런식으로 적으니까 안되더라구요 ㅠㅠ... 연휴 잘보내시길 바라면서 질 좋은 강의에 감사 드립니다!
강의를 듣다 햇갈리는 부분이 있어 질문드립니다. 사용자가 로그인 요청을 하여 인증에 실패하면 SecurityContextHolder.clearContext()를 호출하여 SecurityContextHolder를 초기화 하는 것으로 알고있습니다. 그렇다면 사용자A와 사용자B가 동시에 요청하였을 때 사용자A는 로그인에 성공하여 SecurityContextHolder에 저장되고 사용자B는 로그인에 실패하여 SecurityContextHolder.clearContext()를 호출하면 사용자 A의 정보 역시 삭제되는 것이 맞나요? 또한 이러한 상황이 나올진 모르겠지만 사용자A의 인증 정보를 Session에 저장하기 전 위의 상황이 발생하여 Session에 사용자 A의 정보가 저장되지 않을 수도 있나요? 마지막으로 여러 사용자가 동시에 요청했을 때 SecurityContext context = (SecurityContext) session.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); 해당 구문으로 session에서 값을 찾으면 SPRING_SECURITY_CONTEXT_KEY라는 같은 키로 찾는데 어떻게 사용자를 구분할 수 있는지 궁금합니다.