EtoC

lombok 에러 및 설치 본문

ETC/Error

lombok 에러 및 설치

게리드 2024. 5. 28. 13:10

윈도우 노트북에서 m1 맥북으로 바꿨더니 로그인이 되지않는 문제가 발생했다.

        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        MemberUser memberUser = (MemberUser) authentication.getPrincipal();
        //principal: "누구"에 해당하는 정보 -> 객체타입은 UserDetails :pw,id,auth
        SecurityContextHolder.getContext().setAuthentication
        (createAuth(authentication,memberUser.getMember().getMemberID()));

        rttr.addFlashAttribute("msg1", "성공");
        rttr.addFlashAttribute("msg2", "업로드 되었습니다");

        return "redirect:/";
    }

 

위의 코드에서 getMember()쪽에 빨간 줄이 그어지면서 create getMember라는 오류 수정 문구가떴다.
entity에 분명 생성해두었는데 왜 불러오질 못하는걸까?

 

package kr.co.entity;

import java.util.Collection;
import java.util.stream.Collectors;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User;

import lombok.Data;

@Data
public class MemberUser extends User {
    // 인증- 사용자 정보 저장한다
    private Member member;

    public MemberUser(String name, String password, Collection<? extends GrantedAuthority> autorities) {
        // 부모 생성자 호출
        super(name, password, autorities); // 세가지 정보

    }

    public MemberUser(Member memberVo) { 
        super(memberVo.getMemberID(), memberVo.getMemberPw(), memberVo.getAuthLi().stream()
                .map(auth -> new SimpleGrantedAuthority(auth.getAuth())).collect(Collectors.toList()));
        //세가지 정보 (시큐리티에서 제공)
        this.member = memberVo; //+@
    }

}

 

보면서 생각해보니 lombok의 Data 이노테이션일 사용할수없어서 getter and setter를 사용해서 entity를 작성했던것이 생각났다.

lombok 다운로드

 

Download

 

projectlombok.org

 

위의 페이지에서 lombok다운로드하고 다운로드 경로에서 터미널을 열고 아래의 명령어를 입력하여 실행하자

java -jar lombok.jar

 

eclipse.app 이라고 써진 체크박스에 체크하고 install/update를 누르면 설치가 완료된다.

이후 이클립스를 재부팅하고 로그인을하니 잘 되는것을 확인하였다.

 

윈도우 노트북을 사용했을떄는 전자정부프레임워크를 사용해서 lombok을 설치하지않아도 사용할 수 있었는데

일반적인 이클립스 사용시에는 lombok을 따로 설치해야 사용할 수 있었다.