스프링 시큐리티 에러일지

jinvicky·2023년 2월 15일
0

2023 Spring Project TIL

목록 보기
19/32

오늘도 열심히 따라하다가 낸 에러들을 모아보겠다.

  1. 회원가입을 하는데 권한이 id와 동일하다. jisu가 권한이 jisu다.
    원인: mapper.xml에서 param1, param2 여야 하는데 param1, param1으로 적어서.
    <insert id="giveAuth">
        INSERT INTO USERAUTH VALUES(#{param1}, #{param2}) 
    </insert>
  1. login-processing-url이 동작 안 하는 이슈.
    원인: 내가 분기처리를 똑바로 안 해서 핸들러가 리다이렉할 경로를 몰라서 그랬다.
    분기처리를 똑바로 하자^^

if() uri = 주소; 해야 한다. 그냥 if () 주소; 이러지 맙시다.

  1. 회원가입을 하려는데 가입을 진행하기도 전에 403 forbidden 에러가 뜬다.
    처음에는 access-denied-handler가 동작했다는 것을 다행히 예외처리 메서드로 알 수 있었다.
    또 열심히 검색을 했더니 http의 csrf설정이 disbled되면 해결이 되더라.

참고 자료
https://stackoverflow.com/questions/31312844/spring-security-4-csrf-disable-via-xml

security-context.xml에 추가해주자.

<s:csrf disabled="true"/>
  1. 회원가입을 하는데 난데없이 NullPointerException 에러가 났다.
    값이 안 들어왔다는 뜻인데 추적해보니 입력값은 제대로 들어왔다.
    원인: BCryptPasswordEncoder 변수명을 통일하지 않아서.

나는 이 예제를 따라하기 전에 기존에 했던 패스워드 인코딩 예제가 있었다.

//다른 클래스에서 사용한 인코딩 
@Autowired 
    private BCryptPasswordEncoder passwordEncoder;
    
//회원가입 예제 클래스에서 사용한 인코딩 
@Autowired 
    private BCryptPasswordEncoder bCryptPasswordEncoder;

한 프로젝트에서 같은 인코더를 쓰려면 변수명을 통일해야 한다. 이 둘이 이름이 다르니
처음에는 can not qutowired 에러가 났고, 패스워드를 인코딩해서 넣는 과정에서 인코딩이 문제니
패스워드가 제대로 안 들어간다. 그래서 널포인트 에러가 난 것이다.
변수명을 passwordEncoder로 통일했더니 제대로 동작했다.

profile
Front-End와 Back-End 경험, 지식을 공유합니다.

0개의 댓글

관련 채용 정보