From b5884b4b86f92b4d272f5f9208b9e7b88cf3c243 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Wed, 8 Dec 2021 11:12:33 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BB=93=E5=BA=93=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MongoUserDetailsServiceImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/flyfish-user/src/main/java/com/flyfish/framework/service/MongoUserDetailsServiceImpl.java b/flyfish-user/src/main/java/com/flyfish/framework/service/MongoUserDetailsServiceImpl.java index ad90286..982a83e 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/service/MongoUserDetailsServiceImpl.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/service/MongoUserDetailsServiceImpl.java @@ -1,6 +1,7 @@ package com.flyfish.framework.service; import com.flyfish.framework.config.constants.UserCacheKeys; +import com.flyfish.framework.configuration.jwt.TokenProvider; import com.flyfish.framework.domain.base.IUser; import com.flyfish.framework.domain.po.User; import com.flyfish.framework.enums.UserStatus; @@ -17,7 +18,6 @@ import org.springframework.security.core.context.SecurityContextImpl; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.NoOpPasswordEncoder; -import org.springframework.security.web.server.context.ServerSecurityContextRepository; import org.springframework.stereotype.Service; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; @@ -54,7 +54,7 @@ public class MongoUserDetailsServiceImpl implements MongoUserDetailsService { private final UserDetailsConverter userDetailsConverter; @Resource - private ServerSecurityContextRepository contextRepository; + private TokenProvider tokenProvider; @Resource private ReactiveRedisOperations reactiveRedisOperations; @@ -111,7 +111,11 @@ public class MongoUserDetailsServiceImpl implements MongoUserDetailsService { @Override public Mono authenticate(UserDetails user, ServerWebExchange exchange) { return loadContext(user) - .flatMap(securityContext -> contextRepository.save(exchange, securityContext) + .flatMap(securityContext -> Mono.fromCallable(() -> { + // 添加jwtToken + tokenProvider.addToken(exchange, securityContext.getAuthentication()); + return Mono.empty(); + }) .contextWrite(ReactiveSecurityContextHolder.withSecurityContext( Mono.just(securityContext))) .then(Mono.just(securityContext))) @@ -146,10 +150,7 @@ public class MongoUserDetailsServiceImpl implements MongoUserDetailsService { */ @Override public Mono logout(ServerWebExchange exchange) { - return ReactiveSecurityContextHolder.getContext() - .switchIfEmpty(contextRepository.load(exchange)) - .flatMap(context -> contextRepository.save(exchange, context)); - + return tokenProvider.removeToken(exchange); } }