From 5f888918fef4c65be706cf4165942ed7318b6630 Mon Sep 17 00:00:00 2001 From: JeonSooMin Date: Sun, 19 May 2024 14:23:34 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20OIDC=20=ED=86=A0=ED=81=B0=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/querydsl/MemberRepositoryQuerydsl.java | 4 +++- .../querydsl/MemberRepositoryQuerydslImpl.java | 11 +++++++++++ .../domain/member/service/client/KakaoOicdClient.java | 8 +++++--- .../com/quiz/ourclass/global/config/CacheConfig.java | 4 ++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydsl.java b/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydsl.java index b01a1b92..64ab2e33 100644 --- a/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydsl.java +++ b/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydsl.java @@ -2,10 +2,12 @@ import com.quiz.ourclass.domain.member.dto.response.MemberMeResponse; import com.quiz.ourclass.domain.member.entity.Member; +import java.util.List; public interface MemberRepositoryQuerydsl { - public MemberMeResponse rememberMe(Member me, long orgId); + public List getOrgMembers(long orgId); + } diff --git a/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydslImpl.java b/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydslImpl.java index a7401b34..fcef04c1 100644 --- a/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydslImpl.java +++ b/backEnd/src/main/java/com/quiz/ourclass/domain/member/repository/querydsl/MemberRepositoryQuerydslImpl.java @@ -7,6 +7,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import com.quiz.ourclass.domain.member.dto.response.MemberMeResponse; import com.quiz.ourclass.domain.member.entity.Member; +import java.util.List; import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @@ -32,4 +33,14 @@ public MemberMeResponse rememberMe(Member me, long orgId) { .where(memberOrganization.id.eq(orgId)) .fetchOne(); } + + @Override + public List getOrgMembers(long orgId) { + return jpaQueryFactory + .select(member) + .leftJoin(memberOrganization) + .on(memberOrganization.member.eq(member)) + .where(memberOrganization.organization.id.eq(orgId)) + .fetch(); + } } diff --git a/backEnd/src/main/java/com/quiz/ourclass/domain/member/service/client/KakaoOicdClient.java b/backEnd/src/main/java/com/quiz/ourclass/domain/member/service/client/KakaoOicdClient.java index 5c93b957..5d6a3135 100644 --- a/backEnd/src/main/java/com/quiz/ourclass/domain/member/service/client/KakaoOicdClient.java +++ b/backEnd/src/main/java/com/quiz/ourclass/domain/member/service/client/KakaoOicdClient.java @@ -2,17 +2,19 @@ import com.quiz.ourclass.domain.member.dto.response.OIDCPublicKeysResponse; +import org.springframework.cache.annotation.Cacheable; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; /* -* (name : 실제 구현체가 Application Context에 빈으로 등록될 때 이름 -* url : 요청을 보낼 EndPoint) -* */ + * (name : 실제 구현체가 Application Context에 빈으로 등록될 때 이름 + * url : 요청을 보낼 EndPoint) + * */ @FeignClient(name = "kakao-oicd-client", url = "https://kauth.kakao.com") public interface KakaoOicdClient { // 스프링 어노테이션으로 요청 보내기 가능 + @Cacheable(value = "OIDC") @GetMapping("/.well-known/jwks.json") OIDCPublicKeysResponse getKakaoOIDCOpenKeys(); diff --git a/backEnd/src/main/java/com/quiz/ourclass/global/config/CacheConfig.java b/backEnd/src/main/java/com/quiz/ourclass/global/config/CacheConfig.java index 8296794c..c1668f56 100644 --- a/backEnd/src/main/java/com/quiz/ourclass/global/config/CacheConfig.java +++ b/backEnd/src/main/java/com/quiz/ourclass/global/config/CacheConfig.java @@ -44,9 +44,9 @@ public RedisCacheConfiguration redisCacheConfiguration() { @Bean public RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() { return (builder) -> builder - .withCacheConfiguration("OICD", + .withCacheConfiguration("OIDC", RedisCacheConfiguration.defaultCacheConfig() - .computePrefixWith(cacheName -> "OICD:") + .computePrefixWith(cacheName -> "OIDC:") .entryTtl(Duration.ofDays(7)) .disableCachingNullValues() .serializeKeysWith(