Giter Site home page Giter Site logo

shingmoyeung / casbin-spring-boot-starter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jcasbin/casbin-spring-boot-starter

0.0 0.0 0.0 250 KB

Spring Boot 2.x & 3.x Starter for Casbin, see example at: https://github.com/jcasbin/casbin-spring-boot-example

Home Page: https://mvnrepository.com/artifact/org.casbin/casbin-spring-boot-starter

License: Apache License 2.0

Java 100.00%

casbin-spring-boot-starter's Introduction

Casbin Spring Boot Starter

Codecov branch GitHub Actions Maven Central License SpringBootVersion JCasbinVersion

Casbin Spring Boot Starter is designed to help you easily integrate jCasbin into your Spring Boot project.

how to use

  1. Add casbin-spring-boot-starter to the Spring Boot project.

Maven

<dependency>
    <groupId>org.casbin</groupId>
    <artifactId>casbin-spring-boot-starter</artifactId>
    <version>version</version>
</dependency>

Gradle

implementation 'org.casbin:casbin-spring-boot-starter:version'
  1. Inject the Enforcer where you need to use it
@Component
public class Test {
    @Autowired
    private Enforcer enforcer;
}
  1. Add configuration
casbin:
  #Whether to enable Casbin, it is enabled by default.
  enableCasbin: true
  #Whether to use thread-synchronized Enforcer, default false
  useSyncedEnforcer: false
  #Whether to enable automatic policy saving, if the adapter supports this function, it is enabled by default.
  autoSave: true
  #Storage type [file, jdbc], currently supported jdbc database [mysql (mariadb), h2, oracle, postgresql, db2]
  #Welcome to write and submit the jdbc adapter you are using, see: org.casbin.adapter.OracleAdapter
  #The jdbc adapter will actively look for the data source information you configured in spring.datasource
  #Default use jdbc, and use the built-in h2 database for memory storage
  storeType: jdbc
  #Customized policy table name when use jdbc, casbin_rule as default.
  tableName: casbin_rule
  #Data source initialization policy [create (automatically create data table, no longer initialized if created), never (always do not initialize)]
  initializeSchema: create
  #Local model configuration file address, the default reading location: classpath: casbin/model.conf
  model: classpath:casbin/model.conf
  #If the model configuration file is not found in the default location and casbin.model is not set correctly, the built-in default rbac model is used, which takes effect by default.
  useDefaultModelIfModelNotSetting: true
  #Local policy configuration file address, the default reading location: classpath: casbin/policy.csv
  #If the configuration file is not found in the default location, an exception will be thrown.
  #This configuration item takes effect only when casbin.storeType is set to file.
  policy: classpath:casbin/policy.csv
  #Whether to enable the CasbinWatcher mechanism, the default is not enabled.
  #If the mechanism is enabled, casbin.storeType must be jdbc, otherwise the configuration is invalid.
  enableWatcher: false
  #CasbinWatcher notification mode, defaults to use Redis for notification synchronization, temporarily only supports Redis
  #After opening Watcher, you need to manually add spring-boot-starter-data-redis dependency.
  watcherType: redis
  exception:
    ... See Schedule A for exception settings.
  1. The simplest configuration
  • Do not use other add-on configurations
casbin:
  #If you are using a model profile at this address, no configuration is required
  model: classpath:casbin/model.conf
  • Turn on Watcher
casbin:
  #If the model profile you are using is located at this address, you do not need this configuration
  model: classpath:casbin/model.conf
  #When you open Watcher, the default use of RedisWatcher requires manual addition of spring-boot-starter-data-redis dependency.
  enableWatcher: true
  1. Use custom independent data sources
  • Only increase @CasbinDataSource annotation when injecting custom data source
@Configuration
public class CasbinDataSourceConfiguration {
    @Bean
    @CasbinDataSource
    public DataSource casbinDataSource() {
        return DataSourceBuilder.create().url("jdbc:h2:mem:casbin").build();
    }
}
Schedule A
  • ExceptionSettings(casbin.exception)
name description default
removePolicyFailed Throws an exception when the delete policy fails false
Note: If you do not set another data source, or set the storage file location for H2, the data is stored in memory by default using H2.

Notice:

Since version 0.0.11, casbin-spring-boot-starter adds an id field to the database table structure by default.

The version before 0.0.11 is upgraded to version 0.0.11 and later requires the user to manually add the id field.

See jcasbin#21 for details

casbin-spring-boot-starter's People

Contributors

fangzhengjin avatar hsluoyz avatar shy1st avatar hamid646m avatar shink avatar doctormacky avatar seriouszyx avatar d1zzzy1 avatar imp2002 avatar shingmoyeung avatar fengxq2014 avatar fabian4 avatar nomeguy avatar nitro8 avatar tangyang9464 avatar divyagar avatar outofeastgate avatar xgaxpp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.