Browse Source

更新用户信息时清除缓存

zhouhao 3 years ago
parent
commit
5174482a11

+ 5 - 1
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveUserService.java

@@ -13,6 +13,7 @@ import org.hswebframework.web.system.authorization.api.PasswordEncoder;
 import org.hswebframework.web.system.authorization.api.PasswordValidator;
 import org.hswebframework.web.system.authorization.api.UsernameValidator;
 import org.hswebframework.web.system.authorization.api.entity.UserEntity;
+import org.hswebframework.web.system.authorization.api.event.ClearUserAuthorizationCacheEvent;
 import org.hswebframework.web.system.authorization.api.event.UserCreatedEvent;
 import org.hswebframework.web.system.authorization.api.event.UserDeletedEvent;
 import org.hswebframework.web.system.authorization.api.event.UserModifiedEvent;
@@ -111,7 +112,10 @@ public class DefaultReactiveUserService extends GenericReactiveCrudService<UserE
                             .where(userEntity::getId)
                             .execute()
                             .flatMap(__ -> new UserModifiedEvent(userEntity, passwordChanged).publish(eventPublisher))
-                            .thenReturn(userEntity);
+                            .thenReturn(userEntity)
+                            .doOnNext(e->{
+                                eventPublisher.publishEvent(ClearUserAuthorizationCacheEvent.of(e.getId()));
+                            });
                 });
 
     }