Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준
- jmx
- instancenotfoundexception
- 유니캐스트
- 배열복사
- 리눅스환경
- docker
- 페이로드
- 브로드캐스트
- javax.management.instancenotfoundexception: org.springframework.boot:type=admin
- 백준1946
- 디비버
- name=springapplication
- dbeaver
- wan
- 리눅스계열
- SpringApplication
- 네트워크모델
- 배열최소값최대값
- 모래시계출력
- 배열빈도수
- Decapsulation
- 우분투
- 포트포워딩
- ubuntu
- 도커권한설정
- springboot
- 포트포워딩 안될때
- 오름차순
- 도커
Archives
- Today
- Total
다잘하고싶어
[Spring] 로그인 구현1 본문
로그인 로직 구현 _ LoginService
public Member login(String loginId, String password) {
Optional<Member> findMemberOptional = memberRepository.findByLoginId(loginId);
Member member = findMemberOptional.get();
if (member.getPassword().equals(password)) {
return member;
}else {
return null;
}
}
optional.get() 하면 안에 있는게 튀어나옴. 없으면 예외터짐.
위의 코딩을 아래와 같이 간단하게 표현할 수 있음
public Member login(String loginId, String password) {
Optional<Member> byLoginId = memberRepository.findByLoginId(loginId);
byLoginId.filter(m -> m.getPassword().equals(password))
.orElse(null);
}
위의 코딩을 아래와 같이 간단하게 표현할 수 있음
public Member login(String loginId, String password) {
return memberRepository.findByLoginId(loginId)
.filter(m -> m.getPassword().equals(password))
.orElse(null);
}
핵심로직: 회원을 조회한 다음, 파라미터로 넘어온 비밀번호와 메모리 상의 (또는 DB) 비밀번호가 같으면 회원을 반환하고, 다르면 null 을 반환한다.
LoginController
@Slf4j
@Controller
@RequiredArgsConstructor
public class LoginController {
private final LoginService loginService;
@GetMapping("login") //로그인 폼 보여줌
public String loginForm(@ModelAttribute("loginForm") LoginForm form) {
return "login/loginForm";
}
@PostMapping ("login") //로그인 폼 보여줌
public String login(@Valid @ModelAttribute LoginForm form, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "login/loginForm";
}
Member loginMember = loginService.login(form.getLoginId(), form.getPassword());
if (loginMember == null) { //회원을 못찾거나, 아이디 패스워드가 틀린 경우
bindingResult.reject("loginFail", "아이디 또는 비밀번호가 맞지 않습니다.");
return "login/loginForm";
}
//로그인 성공처리 TODO
return "redirect:/";
}
}
Reference :
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard