首页 文章 精选 留言 我的

精选列表

搜索[Java库],共10000篇文章
优秀的个人博客,低调大师

java安全框架shiro(一)

第一个简单的案例 ,通过读取.ini文件的方式模拟登陆, 1.通过Factory工厂的getInstance()方法来获取SecurityManager的实例,实例化Factory需要一个ini文件的路径作为参数; 2.将上面获取的实例set到 SecurityUtils这个类里,SecurityUtils类有一个get方法来获取Subject类 3.Subject这个类就是用来登陆和退出的,但是需要一个AuthenticationToken实例作为参数 上面是步骤,下面就来一步一步的介绍,最后会在最下面给出代码 第二步我就不说了,方法是静态的,直接类名调用就好了; 现在来到第三步,现在应该是得到subjiect的实例了,需要登录,但是需要一个token实例 现在token也有了,然后我们进行登录; 这里给出一个.ini文件的基本示例,把这个文件所在的路径填入第一步实例化工厂时的参数里即可 最后给出简单案例的代码 package com; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; /** * 测试shiro第一个案例 * */ public class App { public static void main( String[] args ) { { /*实例化工厂*/ Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); /*获取实例*/ SecurityManager instance = factory.getInstance(); /*设置参数*/ SecurityUtils.setSecurityManager(instance); /*获取登录实例*/ Subject subject = SecurityUtils.getSubject(); /*实例化token,传入登录的用户和密码*/ AuthenticationToken token = new UsernamePasswordToken("admin1", "admin"); try { /*进行登录*/ subject.login(token); /*退出登录*/ subject.logout(); }catch (Exception e){ System.out.println("登录错误!!"); } } } } maven中添加的依赖 <dependencies> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-aspectj</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> </dependencies>

优秀的个人博客,低调大师

Java中,局部内部类

局部内部类 A:局部内部类可以直接访问外部类的成员。 B:局部内部类在局部位置可以创建内部类对象,通过内部类对象调用内部类方法,来使用局部内部类功能。 C:局部内部类访问局部变量,局部变量必须加final修饰。为什么呢? 因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内存中消失, 局部对象还要使用这个局部变量。为了让数据还能继续被使用,就用fianl修饰局部变量, 这样,在堆内存里面存储的其实是一个常量值。通过反编译工具可以看一下。 通过反编译工具我们看到了,加入final后,堆内存直接存储的是值,而不是局部变量名。 示例代码如图所示: 我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】

优秀的个人博客,低调大师

Java中,匿名内部类

匿名内部类 就是局部内部类的简化写法。 前提:存在一个类或者接口。 这里的类可以是具体类也可以是抽象类。 格式: new 类名或者接口名() { 重写方法; } 匿名内部类的本质是什么呢? 答:是一个继承了该类的子类或者实现了该接口的实现类(子类)的匿名对象。 简言之:匿名内部类是一个子类的匿名对象。 再简言之:匿名内部类是子类的对象。 小结:匿名内部类是一个结合体,是子类和对象的结合体。 示例代码如下所示: 我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

用户登录
用户注册