展开

关键词

Shiro Realm

Realm 是什么 Realm: 域,Shiro 从 Realm 中获取用户,角色,权限信息。可以把 Relam 看成 DataSource,即安全数据源。 org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.realm.Realm ; import org.apache.shiro.realm.text.IniRealm; import org.apache.shiro.subject.Subject; import org.junit.Test permissionsQuery); jdbcRealm.setUserRolesQuery(String userRolesQuery); 自定义 Relam 在真实项目开发中,我们往往会使用自定义 Realm DefaultSecurityManager securityManager = new DefaultSecurityManager(); MyCustomRealm realm

41420

【Android】Realm详解

升级方式后面会提到 ### **初始化** 使用默认配置 ```java Realm.init(this); Realm mRealm = Realm.getDefaultInstance 通过realm.getPath()来获得该Realm的绝对路径。 (0) //版本号 .build(); Realm realm = Realm.getInstance(config); 创建非持久化的Realm,也就是保持在内存中,应用关闭后就清除了 public void execute(Realm realm) { User user = realm.createObject(User.class (new Realm.Transaction() { @Override public void execute(Realm realm) { realm.createObjectFromJson

1.8K110
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Realm 基本用法

    为什么使用Realm Realm Java 让你能够高效地编写 app 的模型层代码,保证你的数据被安全、快速地存储。 (new Realm.Transaction() { @Override public void execute(Realm realm) { (14); mRealm.commitTransaction(); b.查询数据 Realm mRealm = Realm.getDefaultInstance();//获取Realm实例 final person.setAge(88); } }); d.删除数据 Realm mRealm = Realm.getDefaultInstance();//获取Realm /docs/java/latest/ c、官方Realm使用Demo https://github.com/realm/realm-java

    56570

    Realm技术选型初体验

    使用以下方式: realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm (new Realm.Transaction() { @Override public void execute(Realm realm) { Dog myPuppy = (new Realm.Transaction() { @Override public void execute(Realm realm) { // 移除符合条件的单个查询结果 除了简单易用,它有没有一些我们不知道的坑,必须有啊,具体看下以下这篇文章: 说说 Realm 在 Android 上的坑 指明了realm有以下缺点: 线程的限制(realm对象只能被创建它的线程中访问 参考资料 Realm(java)那些事 在Android中使用Realm作本地存储

    16410

    【iOS】基于Realm数据库的记账软件--Realm数据库(一)

    *realm = [RLMRealm defaultRealm]; [realm transactionWithBlock:^{ // 进行操作 }]; 添加有两种方式 //1 、调用realm *realm = [RLMRealm defaultRealm]; [realm transactionWithBlock:^{ [realm deleteObject:bill]; }] Realm 会自行检测新增和需要移除的属性,然后自动更新硬盘上的数据库架构 } }; // 告诉 Realm 为默认的 Realm 数据库使用这个新的配置对象 [RLMRealmConfiguration ]; } 3、Realm Browser Realm提供了一个专门用于查看Realm数据库的可视化工具---Realm Browse。 若查看失败,请留意一下Realm库的版本与Realm Browser的版本(一般最新的Realm库,需要新版的Realm Browser才能查看)。 ?

    39820

    Tomcat 6 —— Realm域管理

    什么是Realm   首先说一下什么是Realm,可以把它理解成“域”,也可以理解成“组”,因为它类似 类Unix系统 中组的概念。   Realm域提供了一种用户密码与web应用的映射关系。    其中Realm的不同位置也会影响到它作用的范围。 1 在<Engine>元素内部 —— Realm将会被所有的虚拟主机上的web应用共享,除非它被<Host>或者<Context>元素内部的Realm元素重写。 2 在<Host>元素内部 —— 这个Realm将会被本地的虚拟主机中的所有的web应用共享,除非被<Context>元素内部的Realm元素重写。 Realm获取用户信息方式   目前tomcat支持多种Realm管理方式,即支持多种方式来读取用户信息进行验证。

    37660

    Shiro实现多realm方案

    这就涉及到了Shiro的多realm,今天的demo主要是介绍Shiro的多realm实现方案,文中包含所有的代码,需要的朋友可以无缝copy。 了,然后在各自的realm中去检查token的有效性了,那Shiro怎么知道我们的Realm都是哪些呢? 由于是多realm我们需要重写ModularRealmAuthenticator类,ModularRealmAuthenticator类中用于判断逻辑走不同的realm,接着注入我们的两个realm,分别是 <>(realms.size()); for (Realm realm : realms) { // 这里使用的realm中定义的Name属性来进行区分,注意realm ,下面为我的Shiro认证realm

    1200

    shiro教程6(多realm认证)

    为什么要使用多realm认证? 这就需要有多个Realm以及认证策略的问题。 添加多Realm配置 <?xml version="1.0" encoding="UTF-8"? -- 注册自定义Realm --> <bean class="com.dpb.<em>realm</em>.MyRealm" id="myRealm"> <! -- 注册第二个Realm --> <bean class="com.dpb.<em>realm</em>.MyRealmSha1" id="myRealmSha1"> <!

    24910

    shiro教程2(自定义Realm)

    通过shiro教程1我们发现仅仅将数据源信息定义在ini文件中与我们实际开发环境有很大不兼容,所以我们希望能够自定义Realm。 自定义Realm的实现 创建自定义Realmjava类 创建一个java文件继承AuthorizingRealm类,重写两个抽象方法 /** * 自定义的Realm * @author dengp 配置ini.xml文件 [main] #自定义 realm customRealm=com.dpb.realm.MyRealm #将realm设置到securityManager securityManager.realms 核心方法是doGetAuthenticationInfo(token) 在Realm的结构中 ? 故选择继承AuthorizingRealm 自定义的Realm什么时候被调用的? ? 密码验证什么时候执行的? 注意:自定义Realm中只完成了账号的认证。

    58710

    JAVA|多Realm管理基础实现

    而下面要说的是另一个处理办法,那就是对于不同表的用户分别创建不同的Realm。 下面就来具体看一下: 2 创建Realm 在这里创建了两个Realm作为例子(StudentRealm和AdminRealm),如图2.1 ? 3 ShiroConfig配置 下面就是对ShiroConfig进行配置,首先就是引入这两个Realm: @Bean(name = "studentRealm") public StudentRealm adminRealm() { return new AdminRealm(); } 接着编写shiro的DefaultWebSecurityManager,创建一个List集合,存入这两个Realm DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); List<Realm

    20810

    Android十八章:Realm-in-android

    Realm介绍 Realm官网链接https://realm.io/ 开源地址https://github.com/realm/realm-java 官方使用文档https://realm.io/docs 在自定义Applciation中Realm.init(this); 获取Realm实例 realm = Realm.getDefaultInstance(); 这是获取默认配置的Realm,默认保存在 realm = Realm.getDefaultInstance(); realm.beginTransaction(); Dog d=new Dog("a",1); Dog b=realm.copyToRealm (new Realm.Transaction() { @Override public void execute(Realm realm) { Dog dog = realm.createObject (); } } } Realm 版本迁移 如果realm版本是1,现在要升级realm版本是2并且数据解构改变了比如新增了一个RealmObejct的成员变量,如果default.realm

    41820

    java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be acce

    (Realm realm) { final RealmResults<Apple> realmResults = mRealm.where(Apple.class).findAll(); Realm objects can only be accessed on the thread they were created. 意思就是Realm对象只能在它创建的线程上访问。 () { @Override public void execute(Realm realm) { //将之前的mRealm改成realm参数对象就可以了 final 方法2 设置Realm的DefaultInstance。 mRealm.executeTransactionAsync(new Realm.Transaction() { @Override public void execute(Realm realm

    95630

    shiro教程6(多realm认证)

    为什么要使用多realm认证?    这就需要有多个Realm以及认证策略的问题。 -- 注册自定义Realm --> <bean class="com.dpb.<em>realm</em>.MyRealm" id="myRealm"> <! -- 注册第二个Realm --> <bean class="com.dpb.<em>realm</em>.MyRealmSha1" id="myRealmSha1"> <! 第一个Realm验证通过 ?

    1K30

    Android数据库Realm实践

    Realm Realm 是一个将可以使用的Android ORM,基于C++编写,直接运行在你的设备硬件上(不需要被解释),因此运行很快。 大家可以直接看官方的文档,我也是在这基础的上讲解:realm使用 ? getRealm(){ Realm realm =Realm.getInstance(new RealmConfiguration.Builder(mContext).name(realmName @Override public void execute(Realm realm) { realm.beginTransaction(); realm.close();//并且要记得在离开线程时要关闭 realm.close(); } }); //关闭Realm对象 mRealm.close

    47690

    shiro教程2(自定义Realm)

    通过shiro教程1我们发现仅仅将数据源信息定义在ini文件中与我们实际开发环境有很大不兼容,所以我们希望能够自定义Realm。 自定义Realm的实现 创建自定义Realmjava类 创建一个java文件继承AuthorizingRealm类,重写两个抽象方法 /** * 自定义的Realm * @author dengp customRealm=com.dpb.realm.MyRealm #将realm设置到securityManager securityManager.realms=$customRealm 测试 测试代码和上个案例一模一样 核心方法是doGetAuthenticationInfo(token) 在Realm的结构中 ?    故选择继承AuthorizingRealm 自定义的Realm什么时候被调用的? ? 密码验证什么时候执行的? 注意:自定义Realm中只完成了账号的认证。

    61620

    Shiro框架学习,Realm及相关对象

    6.1 Realm 【2.5 Realm】及【3.5 Authorizer】部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现。 1、定义实体及关系 ? [main] realm1=com.github.zhangkaitao.shiro.chapter6.realm.MyRealm1 realm2=com.github.zhangkaitao.shiro.chapter6 .realm.MyRealm2 realm3=com.github.zhangkaitao.shiro.chapter6.realm.MyRealm3 securityManager.realms =$realm1,$realm2,$realm3 3、测试用例(com.github.zhangkaitao.shiro.chapter6.realm.PrincialCollectionTest Realm名字尽量不要重复。

    19840

    权限框架 - shiro 自定义realm

    上篇文章中是使用的默认realm来实现的简单登录,这仅仅只是个demo,真正项目中使用肯定是需要连接数据库的 首先创建自定义realm文件,如下: ? 在shiro中注入自定义realm的完全限定类名: ? 自定义realm认证: ? 执行认证: ? done...

    42250

    React Native 使用Realm数据库组件

    前提 React Native的版本要大于等于0.31.0 安装 npm install --save realm react-native link realm 示例代码 const Realm = this.state = { realm: null }; } componentWillMount() { Realm.open({ schema: [{name : 'Dog', properties: {name: 'string'}}] }).then(realm => { realm.write(() => { realm.create info = this.state.realm ? 'Number of dogs in this Realm: ' + this.state.realm.objects('Dog').length : 'Loading...

    48330

    Realm数据库学习之快速入门

    :realm-gradle-plugin:1.2.0" } } app模块中的build.gradle apply plugin: 'realm-android' 任何数据库都无非是CRUD的操作 相对于传统的原生的Sqlite开发,Realm的API使开发者显得轻松自在。 初始化 使用Realm需要配置RealmConfiguration.代码很简单如下: Real mRealm = Realm.getInstance(new RealmConfiguration.Builder Realm保存数据的示例代码如下: mRealm.executeTransaction(new Realm.Transaction() { @Override 更新数据十分及时,只要在查询的结果集中找出相应的数据项然后进行相关的更新,数据就更新到了Realm. mRealm.executeTransaction(new Realm.Transaction()

    28820

    REALM: Retrieval-Augmented Language Model Pre Training

    去年可以说是语言模型快速发展的一年,BERT、XLNET、Albert等等模型不断刷新各个NLP榜单。在NLP榜单中比较引人注目的应该属于阅读理解型的任务,例如...

    51010

    扫码关注云+社区

    领取腾讯云代金券