본문 바로가기

Backend/Spring | SpringBoot

[Spring Security] 인증 중 발생에러

반응형

com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input

➡️ AuthenticationFilter를 구현하여 인증하는 과정에서 Provider가 비교할 입력받은 Dto가 mapping되지 않아서 발생

(e.g. ajax에서는 파라미터를 email과 password로 사용 / 인증에서 받아들일 Dto에서는 username과 password로 사용
이때 email부분과 username부분이 mapping되지 않아 발생)

 

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'email': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

➡️직렬화만 하고 JSON으로 변환하지 않아 발생

const serializedValues = $('#loginFrm').serializeObject();
$.ajax({
	type: 'POST',
	url: '/ajax/loginProcess',
	cache: false,
	contentType: 'application/json',
	data: JSON.stringify(serializedValues), // 수정전 : data: serializedValues,
	success: function (response) {
		if (response.status === 'MemberSuccess'){
			window.location.href = '/main';
		} else if (response.status === 'AdminSuccess'){
			window.location.href = '/admin/main';
		} else {
			window.location.href = '/loginFail';
		}
	}
});

 

org.springframework.security.authentication.InternalAuthenticationServiceException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [org.springframework.security.core.userdetails.User]

➡️ Entity의 변환이 이루어지지 않아서 발생

@Override
  public UserDetails loadUserByUsername(String username) {
  // return memeberRepository.selectMemeber(username); // memberRepository를 User로 바로 객체화 하려함
  // 수정 후 (Member 객체로 가져오고 재조립)
    Member member = memberRepository.selectMember(username);
    return User.withUsername(member.getEmail())
        .password(member.getPassword())
        .roles(String.valueOf(member.getMemberAuth()))
        .build();
  }

 

 

java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

➡️ PasswordEncoder가 암호화 방식에 대해 확인 할수있는 id가 없어서 발생

앞에 붙은 {id} 값으로 식별한다. 만약 암호화를 하지 않았다면 password앞에 {noop}가 붙어야 한다.

  • {bcrypt}$2a$10$dXJ3SW6G7P50lGmMkkmwe.20cQQubK3.HZWzG3YB1tlRy.fqvM/BG\
  • {noop}passwor
  • {pbkdf2}5d923b44a6d129f3ddf3e3c8d29412723dcbde72445e8ef6bf3b508fbf17fa4ed4d6b99ca763d8dc
  • {scrypt}$e0801$8bWJaSu2IKSn9Z9kM+TPXfOc/9bdYSrN1oD9qfVThWEwdRTnO7re7Ei+fUZRJ68k9lTyuTeUp4of4g24hHnazw==$OAOec05+bXxvuu/1qZ6NUR+xQYvYv7BeL1QxwRpY5Pc
  • {sha256}97cde38028ad898ebc02e690819fa220e88c62e0699403e94fff291cfffaf8410849f27605abcbc0

 

반응형