realm

Persisting objects with Realm (error: Changing Realm data can only be done from inside a transaction)

匿名 (未验证) 提交于 2019-12-03 00:50:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am having difficulties getting Realm to work. RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build(); Realm.setDefaultConfiguration(realmConfig); Realm realm = Realm.getDefaultInstance(); MyObjectExtendingRealmObject myObject = new MyObjectExtendingRealmObject("John"); realm.beginTransaction(); realm.copyToRealm(myObject); realm.commitTransaction(); Error: java.lang.IllegalStateException: Changing Realm data can only be done from inside a transaction Call me crazy but aren't I doing the data persistence inside the

shiro权限框架整理

匿名 (未验证) 提交于 2019-12-03 00:26:01
Shiro简介 SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 Authentication: 身份认证/登录,验证用户是不是拥有相应的身份; Authorization: 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager: 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography: 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support: Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency: shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去; Testing: 提供测试支持; Run As: 允许一个用户假装为另一个用户(如果他们允许)的身份进行访问; Remember Me: 记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。 记住一点

【SpringShiro】Shiro 基础教程

匿名 (未验证) 提交于 2019-12-03 00:22:01
一、前言 Apache Shiro 是 Java 的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 二、介绍 2.1 功能特点 Shiro 包含 10 个内容,如下图: 1) Authentication:身份认证/登录,验证用户是不是拥有相应的身份。 2) Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限。 3) Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的。 4) Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储。 5) Web Support:Web支持,可以非常容易的集成到 web 环境。 6) Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。 7) Concurrency:shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。 8) Testing:提供测试支持。 9) Run As

Shiro入门教程

匿名 (未验证) 提交于 2019-12-03 00:19:01
2.2.1 shiro-first.ini 3.3.1 shiro-permission.ini 3.4.2 shiro-realm.ini shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权。 spring中有spring security ,是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。 shiro不依赖于spring,shiro不仅可以实现web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro. 使用shiro实现系统的权限管理,有效提高开发效率,从而降低开发成本。 - subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。 - securityManager: 安全管理器,主体进行认证和授权都是通过securityManager进行。 - authenticator: 认证器,主体进行认证最终通过authenticator进行的。 - authorizer: 授权器,主体进行授权最终通过authenticator进行的。 - sessionManager: web应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。 - sessionDao:

Shiro的实现流程

匿名 (未验证) 提交于 2019-12-03 00:11:01
获取当前的 Subject. 调用 SecurityUtils.getSubject(); 测试当前的用户是否已经被认证. 即是否已经登录. 调用 Subject 的 isAuthenticated() 若没有被认证, 则把用户名和密码封装为 UsernamePasswordToken 对象 1). 创建一个表单页面 2). 把请求提交到 SpringMVC 的 Handler 3). 获取用户名和密码. 执行登录: 调用 Subject 的 login(AuthenticationToken) 方法. 自定义 Realm 的方法, 从数据库中获取对应的记录, 返回给 Shiro. 1). 实际上需要继承 org.apache.shiro.realm.AuthenticatingRealm 类 2). 实现 doGetAuthenticationInfo(AuthenticationToken) 方法. 2). 实现 doGetAuthenticationInfo(AuthenticationToken) 方法. 由 shiro 完成对密码的比对. 1).密码的比对: 通过 AuthenticatingRealm 的 credentialsMatcher 属性来进行的密码的比对! 2). 如何把一个字符串加密为 MD5 替换当前 Realm 的 credentialsMatcher

Should I define the primary key for each entity in Realm?

[亡魂溺海] 提交于 2019-12-03 00:10:54
I have noticed that setting PK is not obligatory in Realm and simply can be omitted. But in documentation is stated that: Indexes are created automatically for primary key properties. And I'd like to clear up some questions: 1) What is the default value for PK is defined by Realm, if I don't assign it by myself. Is it hash or whatever ? (If I don't set PK and call [MyRealmObject primaryKey] it returns nil ) 2) If this implicit PK is indexed by default ? Should I worry about it, because if it is not indexed, does it mean that it affects the general performance of this Entity (for example

【Shiro】SpringBoot整合Shiro

匿名 (未验证) 提交于 2019-12-02 23:32:01
Shiro的核心API Subject:用户主题(把操作交给SecurityManager) SecurityManager:安全管理器(关联Realm) Realm:Shiro连接数据的桥梁 1、整合SpringBoot: pom导入jar文件:shiro-spring 2、自定义Realm类 编写自己的Realm类,实现授权与认证逻辑,继承AuthorizingRealm public class AuthRealm extends AuthorizingRealm { // 授权逻辑 @Override protected AuthorizationInfo doGetAuthorizationInfo ( PrincipalCollection principals ) { System . out . println ( "授权逻辑" ) ; // 给资源进行授权 SimpleAuthorizationInfo info = new SimpleAuthorizationInfo ( ) ; // 添加资源的授权字符串,实际从数据库拿到授权字符串 info . addStringPermissions ( "edit" ) ; // edit这个字符串必须与用户之前拦截权限时候配置的字符串一致 // 到数据库查询当前登录用户的授权字符串 // 获取当前登录用户

iOS开发 - Realm数据的踩坑之路

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:技术是无罪的,欢迎大家多多交流,转载的地方请注明作者出处!谢谢! https://blog.csdn.net/www_131374/article/details/83540352 找个时间,得把各种数据库的原理了解并记录一下。现在先把使用过程中遇到的问题列一下: 1、切记realm数据库支持的类型,使用了数组和字典的要注意了,最好声明一个NSData类型的对应属性,然后使用ignoredProperties忽略数组和字典类型的属性。。在存储时候转化一波! BOOL, bool, int, NSInteger, long, float, double, CGFloat, NSString, NSDate 和 NSData 2、使用默认数据库并且修改默认数据库的路径时,要先检查修改的文件夹是否存在,否则就会炸掉。 3、新增了一个字段,删除了一个字段,炸掉,提示我,字段变更了,要数据迁移,好吧,整个数据库删掉了,再来。 4、删除报错, Can only delete an object from the Realm it belongs to 这个可能是因为,你模型并不是由数据库查询得到的,所以数据库不能直接删除,建议先用id查询这个对象,然后删除查询到的对象。 5、使用报错,Object has been deleted or invalidated 这个可能是因为

asp.net权限认证:OWIN实现OAuth 2.0 之简化模式(Implicit)

匿名 (未验证) 提交于 2019-12-02 22:56:40
摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication) 我是觉得真心不错,让我少走很多弯路。这篇文章主要是对上边引用文章的讲解,老司机可以略过。 老规矩,上摘认证的工作流程图 看图大概可以知道摘要认证的步骤 客户端请求资源 api/employees 后台认证逻辑,返回401 数据提交后,服务端检查Headers中的Authorization信息,null值就返回401,提示需要认证,认证格式为Digest,同时返回的还有realm、nonce、qop这几个参数值 1、realm的值可以随意;nonce为随机数,一般是GUID格式的字符串,需要后台返回;qop的之分布有三种:没有定义(即空值)、auth、auth-int 2、后台处理过程: 3、返回的报文头信息是这样: HTTP /1.1 401 Unauthorized WWW-Authenticate:Digest realm= ”RealmOfBadri” qop=“auth” nonce=”75d1c31e6d3b28f100edac595a53cf96” 客户端授权开始 接受到反馈后,知道资源需要授权才能访问

GitLab CI with Docker, Fastlane and Cocoapods not working

こ雲淡風輕ζ 提交于 2019-12-02 22:47:17
问题 Desperate help needed: Already asked for the case with gitlab-runner register as "shell", I try to ask a very similar question here with gitlab-runner register as "docker". Since 3 days I try to get Gitlab CI running (using docker, fastlane - all for an iOS-app having Cocoapods dependencies). Here is the error message that the GitLab CI spits out: I did the following steps: install fastlane (link to fastlane page) create a GitLab project and upload your project repository (link to GitLab)