securitymanager

Shiro自定义Realm(二)

℡╲_俬逩灬. 提交于 2020-01-11 06:16:01
项目结构: 1 :自定义 reaml ,继承 AuthorizingRealm 重写 3 方法:getName doGetAuthorizationInfo doGetAuthenticationInfo public class MyRealm extends AuthorizingRealm { public String getName(){ return "MyRealm"; } //授权操作 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { return null; } //认证操作 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { //参数token:表示登陆时保证的UsernamePasswordToken //通过用户名到数据库中查用户信息,封装成一个AuthenticationInfo认证对象返回,方便认证器进行对比 String username =(String)

Shiro权限框架简介

▼魔方 西西 提交于 2020-01-10 03:26:44
http://blog.csdn.net/xiaoxian8023/article/details/17892041 Shiro权限框架简介 2014-01-05 23:51 3111人阅读 评论 (37) 收藏 举报 分类: 【java框架】 (25) 版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载请声明:【转自 http://blog.csdn.net/xiaoxian8023 】 目录 (?) [+] 最近加入了gxpt项目组,被安排做权限模块,所以也有幸第一次接触到了Shiro框架。让我们来一起领略Shiro的风采吧。 什么是Apache Shiro? Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。 你可以用 Apache Shiro做下面的事情: 验证用户 对用户执行访问控制,如: 判断用户是否拥有角色admin 判断用户是否拥有访问的权限 在任何环境下使用 Session API 可以使用多个用户数据源。例如一个是oracle用户库,另外一个是mysql用户库 单点登录(SSO)功能 “Remember Me”服务 ,类似购物车的功能,shiro官方建议开启

Apache-Shiro

删除回忆录丶 提交于 2020-01-09 19:36:29
1.1 shiro 介绍 Apache Shiro 是一个强大且易用的 Java 安全框架 , 执行身份验证、授权、密码学和会话管理。使用 Shiro 的易于理解的 API, 您可以快速、轻松地获得任何应用程序 , 从最小的移动应用程序到最大的网络和企业应用程序。 三个核心组件: Subject, SecurityManager 和 Realms. Subject 即 “当前操作用户”。但是,在 Shiro 中, Subject 这一概念并不仅仅指人,也可以是第三方进程、后台帐户( Daemon Account )或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是 Shiro 的“用户”概念。 Subject 代表了当前用户的安全操作, SecurityManager 则管理所有用户的安全操作。 SecurityManager 它是 Shiro 框架的核心,典型的 Facade 模式, Shiro 通过 SecurityManager 来管理内部组件实例,并通过它来提供安全管理的各种服务。 Realm Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时, Shiro 会从应用配置的 Realm 中查找用户及其权限信息。 1.2 S hiro 体系结构

shiro(java安全框架)

Deadly 提交于 2020-01-09 19:35:36
shiro(java安全框架)     以下都是综合之前的人加上自己的一些小总结     Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的     个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。 Shiro的主要框架图: 方法类的走向: 对一些其中的方法的简单说明: Subject Subject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序。 Subject在shiro中是一个接口,接口中定义了很多认证授相关的方法,外部程序通过subject进行认证授,而subject是通过SecurityManager安全管理器进行认证授权 SecurityManager SecurityManager即安全管理器,对全部的subject进行安全管理,它是shiro的核心

Spring Boot整合Shiro

两盒软妹~` 提交于 2020-01-08 02:35:28
概述 4A(认证Authentication、授权Authorization、账号Account、审计Audit)是现代任何IT系统中很基础但非常重要的部分,无论是传统管理信息系统还是互联网项目,出于保护业务数据和应用自身的安全,都会设计自己的登录和资源授权策略。最近项目中需要登录和权限相关的功能,项目为spring-boot工程,现在流行的权限验证框架有shiro和spring-security,shiro相对spring-security来说学习难度要低一点,也是比较成熟的产品,因此选择shiro作为项目的权限验证框架。 步骤 添加依赖 spring boot的版本为2.1.7.RELEASE。如果大量依赖spring的项目,可以用https://start.spring.io/ patchca是验证码部分 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> </parent> shiro-spring是用的最新的版本。patchca是用于验证码。 <dependencies> <dependency> <groupId>org

Java Security manager per thread

≡放荡痞女 提交于 2020-01-06 08:22:10
问题 I want to run a specific thread-class in a restricted sandbox, while the rest of the application can run unrestricted. Is it possible to attach a security manager for a specific thread-class only? -- EDIT: Using Peter's hint, I created the following variable, inside my custom security manager: private static ThreadLocal<Boolean> isChatbot = new InheritableThreadLocal<Boolean>() { @Override protected synchronized Boolean initialValue() { boolean value = (Thread.currentThread() instanceof

Springboot整合Shiro安全框架

半世苍凉 提交于 2020-01-06 03:17:04
最近在学习Springboot,在这个过程中遇到了很多之前都没有技术知识,学习了一阵子,稍微总结一些。 ---- Shiro框架 shiro框架,是一个相对比较简便的安全框架,它可以干净利落地处理身份验证、授权、企业会话管理和加密。 在此引入网上众多资料,归总shiro大致框架如下: Subject: 主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者 Shiro SecurityManager: 管理所有Subject,SecurityManager 是 Shiro 架构的核心,配合内部安全组件共同组成安全伞. Realm: 用于进行权限信息的验证,我们自己实现。Realm 本质上是一个特定的安全 DAO:它封装与数据源连接的细节,得到Shiro 所需的相关的数据。在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization) 在主要开发上,我将Shiro的实际应用归结成两大块,其一是关于shiro的一些配置信息

Setting the Java SecurityManager for one method only

点点圈 提交于 2020-01-03 03:17:15
问题 I have a method A which might look like following: public double A{ if (secM == null) { secM = new SecurityManager(); System.setSecurityManager(secM); } //do something and return a double } The problem is that once the SecurityManager is set, it is for the entire project, but I only need it to be for the class this method is in. How can I tell the SecurityManager to only verify the permissions for this method/class? 回答1: What actions do you want the SecurityManager to prevent, and which do

JVM Security Manager File permissions - custom policy

我是研究僧i 提交于 2020-01-02 10:15:12
问题 I've found a somehow unexpected behaviour using JVM Security Manager custom policies. repo: https://github.com/pedrorijo91/jvm-sec-manager in branch master, go into the /code folder: custom policy file grants File read permission for file ../allow/allow.txt no permission for the file ../deny/deny.txt the code in the HelloWorld.java tries to read both files There's a run.sh script to run the command Now everything works as expected: the allowed file reads, but the other throws a security

Can I trust Java SecurityManager sandbox?

南笙酒味 提交于 2019-12-30 07:20:32
问题 I'm writing a JavaFX2 application that accepts arbitrary code to be loaded from remote locations. For me using a custom SecurityManager, ClassLoader and ProtectionDomain was the way to go. Unfortunately this seems to be the same setup that's used to sandbox applets, which has caused a lot of security exploits and that in turn has persuaded people to fear Java Web Plugin and removing it from their OS entirely. Is Java sandbox a secure environment to run untrusted code onto, or is it just the