반응형
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 | 31 |
Tags
- 인터셉터의 정의
- 필터의 정의
- 김영한
- application-properties
- @Controller
- controller
- MVC
- spring MVC
- springSecurityFilterChain 오류
- for all entries in
- SAP
- 쿠키의 정의
- java.lang.AssertionError
- abap value in field Data Class error
- BindingResult
- optional
- .orelseThrow
- Validation
- spring
- SpringMVC
- 구글 보안 api 활용
- jpa
- filter vs interceptor
- 세션이란
- 401오류
- n+1
- 필터vs인터셉터
- abap
- Testcode
- 쿠키란
Archives
- Today
- Total
SAP공장
[SpringMVC 2편] Login 기능 추가하기. 본문
반응형
# 인프런 김영한의 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술을 개인적으로 정리한 글입니다.
1. Login Form(도메인 같은 느낌) 생성하기 // 로그인시 전용 Form
@Data
public class LoginForm {
@NotEmpty
private String loginId;
@NotEmpty
private String password;
}
2. Login Repository 만들기 // 로그인시 사용될 DB와의 연관 관게 메소드 생성(DB와 Spring사이)
@Slf4j
@Repository
public class MemberRepository {
private static Map<Long, Member> store = new ConcurrentHashMap<>();
private static Long sequence = 0L;
public Member save(Member member){
member.setId(++sequence);
log.info("save: member={}", member);
store.put(member.getId(), member);
return member;
}
public Member findById(Long id){
return store.get(id);
}
public List<Member> findAll(){
return new ArrayList<>(store.values());
}
//
// public Optional<Member> findByLongId(String loginId){
// List<Member> all = findAll();
// for(Member m : all){
// if (m.getLoginId().equals(loginId)){
// return Optional.of(m);
// }
// }
// return Optional.empty();
// }
public Optional<Member> findByLoginId(String loginId){
return findAll().stream()
.filter(m -> m.getLoginId().equals(loginId))
.findFirst();
}
public void clearStore(){
store.clear();
}
}
3. Login Service 생성하기// 로그인할 때 사용되는 기능들 (Spring과 서버사이)
@Service
@RequiredArgsConstructor
public class LoginService {
private final MemberRepository memberRepository;
// 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;
// }
// }
public Member login(String loginId, String password){
return memberRepository.findByLoginId(loginId)
.filter(m -> m.getPassword().equals(password))
.orElse(null);
}
}
반응형
'[WEB]Back-end > Spring MVC' 카테고리의 다른 글
SPRING MVC 가 뭐야? (0) | 2022.03.04 |
---|---|
[SpringMVC 2편] 필터 vs 인터셉터 (로그인 적용) (0) | 2022.02.28 |
Validator interface 활용하기 (0) | 2022.02.22 |
BindingResult , add FieldError=-> rejectValue 변환 (0) | 2022.02.21 |
BindingResult Version3 properties를 활용한 동적 변경 (0) | 2022.02.20 |
Comments