Skip to content

Commit

Permalink
test : mock user 어노테이션추가
Browse files Browse the repository at this point in the history
  • Loading branch information
ekgns33 committed Jul 22, 2024
1 parent f927ed8 commit b5c25b4
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package gdsc.konkuk.platformcore.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import org.springframework.security.test.context.support.WithSecurityContext;

import gdsc.konkuk.platformcore.domain.member.entity.MemberRole;

@Retention(RetentionPolicy.RUNTIME)
@WithSecurityContext(factory = WithMyCustomUserSecurityContextFactory.class)
public @interface CustomMockUser {
String memberId() default "202011288";

MemberRole role() default MemberRole.MEMBER;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package gdsc.konkuk.platformcore.annotation;

import java.util.List;

import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.test.context.support.WithSecurityContextFactory;

import gdsc.konkuk.platformcore.domain.member.entity.MemberRole;

public class WithMyCustomUserSecurityContextFactory implements WithSecurityContextFactory<CustomMockUser> {
@Override
public SecurityContext createSecurityContext(CustomMockUser annotation) {
String memberId = annotation.memberId();
MemberRole role = annotation.role();

Authentication auth = new UsernamePasswordAuthenticationToken(
memberId,
"",
buildGrantedAuthoritiesFromRole(role)
);

SecurityContext context = SecurityContextHolder.getContext();
context.setAuthentication(auth);

return context;
}

private List<GrantedAuthority> buildGrantedAuthoritiesFromRole(final MemberRole role) {
return List.of(new SimpleGrantedAuthority(role.toString()));
}
}

0 comments on commit b5c25b4

Please sign in to comment.