Skip to content

Commit 37db71e

Browse files
committed
feat: UserDetails 구현체 구현
1 parent b602d5f commit 37db71e

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package dmu.dasom.api.global.auth.userdetails;
2+
3+
import dmu.dasom.api.domain.common.Status;
4+
import dmu.dasom.api.domain.member.entity.Member;
5+
import lombok.AllArgsConstructor;
6+
import org.springframework.security.core.GrantedAuthority;
7+
import org.springframework.security.core.userdetails.UserDetails;
8+
9+
import java.util.Collection;
10+
import java.util.List;
11+
12+
@AllArgsConstructor
13+
public class UserDetailsImpl implements UserDetails {
14+
15+
private final Member member;
16+
17+
@Override
18+
public boolean isAccountNonExpired() {
19+
return !this.member.getStatus().equals(Status.DELETED);
20+
}
21+
22+
@Override
23+
public boolean isAccountNonLocked() {
24+
return !this.member.getStatus().equals(Status.INACTIVE);
25+
}
26+
27+
@Override
28+
public boolean isCredentialsNonExpired() {
29+
return true;
30+
}
31+
32+
@Override
33+
public boolean isEnabled() {
34+
return this.member.getStatus().equals(Status.ACTIVE);
35+
}
36+
37+
@Override
38+
public Collection<? extends GrantedAuthority> getAuthorities() {
39+
return List.of((GrantedAuthority) () -> member.getRole().toString());
40+
}
41+
42+
@Override
43+
public String getPassword() {
44+
return this.member.getPassword();
45+
}
46+
47+
@Override
48+
public String getUsername() {
49+
return this.member.getEmail();
50+
}
51+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package dmu.dasom.api.global.auth.userdetails;
2+
3+
import dmu.dasom.api.domain.member.service.MemberService;
4+
import lombok.RequiredArgsConstructor;
5+
import org.springframework.security.core.userdetails.UserDetails;
6+
import org.springframework.security.core.userdetails.UserDetailsService;
7+
import org.springframework.security.core.userdetails.UsernameNotFoundException;
8+
import org.springframework.stereotype.Service;
9+
10+
@Service
11+
@RequiredArgsConstructor
12+
public class UserDetailsServiceImpl implements UserDetailsService {
13+
14+
private final MemberService memberService;
15+
16+
@Override
17+
public UserDetails loadUserByUsername(final String username) throws UsernameNotFoundException {
18+
return new UserDetailsImpl(memberService.getMemberByEmail(username));
19+
}
20+
21+
}

0 commit comments

Comments
 (0)