For Maven:
<dependency> <groupId>org.casbin</groupId> <artifactId>jcasbin-redis-watcher-ex</artifactId> <version>1.1.0</version> </dependency>
package org.casbin.watcherEx; import io.lettuce.core.RedisURI; import org.casbin.jcasbin.main.Enforcer; public class Main { public static void main(String[] args) { // Initialize the RedisWatcher. // Use the Redis host and port as parameters. WatcherOptions options = new WatcherOptions(); options.setChannel("jcasbin-channel"); options.setOptions(RedisURI.builder().withHost("your ip").withPort(6379).build()); RedisWatcherEx redisWatcherEx = new RedisWatcherEx(options); // Set the update callback. redisWatcherEx.setUpdateCallback((msg) ->{ System.out.println(msg); }); // Initialize the JCasbin enforcer. Enforcer enforcer = new Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv"); // Set the watcher for the enforcer. enforcer.setWatcher(redisWatcherEx); // Update the policy to test the effect. // You should see "[casbin rules updated]" in the log. enforcer.savePolicy(); // Only exists in test (Wait for input to keep the program running) Scanner scanner = new Scanner(System.in); scanner.nextLine(); } }
This project is under Apache 2.0 License. See the LICENSE file for the full license text.