根据调用中的输入参数切换功能激活

问题描述 投票:0回答:2

togglez 的所有

ActivationStrategy
使用来自 HttpRequest 或其他上下文的输入。

但是,如果我使用togglez作为独立的java应用程序,有什么方法可以将参数传递到

isActive
方法中。

Features.DOWNLOAD_ACCESS.isActive(availableBalance);

而不是

Features.DOWNLOAD_ACCESS.isActive();

下面是

ReleaseDateActivationStrategy
使用当前日期。但如果有人更改系统日期,它就会失败。 https://github.com/togglz/togglz/blob/master/core/src/main/java/org/togglz/core/activation/ReleaseDateActivationStrategy.java

java togglz
2个回答
1
投票
Togglz 中的 ActivationStrategies 有一个 IsActive 方法,它采用两个参数:FeatureState 和 FeatureUser。这些分别由 StateRepository 实现和 UserProvider 实现提供。 如果您想在独立应用程序中进行这种级别的自定义,您应该提供并实现一个自定义的FeatureManagerProvider,它提供了功能管理器,如

Togglz高级配置中所述。您还创建了一个自定义 StateRepository 和 UserProvider。


0
投票
您可以包装现有的

UserProvider

 实现,并使用任何附加属性来增强 
FeatureUser

@Configuration @RequiredArgsConstructor public class TogglzConfig { private final TogglzProperties properties; //... @Bean public UserProvider userProvider() { return new SpringSecurityUserProvider(properties.getConsole().getFeatureAdminAuthority()) { @Override public FeatureUser getCurrentUser() { SimpleFeatureUser user = (SimpleFeatureUser)super.getCurrentUser(); user.setAttribute( "availableBalance", getAvailableBalance()); // Implement this logic return user; } }; } }
    
© www.soinside.com 2019 - 2024. All rights reserved.