`

Shiro学习第一式身份验证1

 
阅读更多

本来应该学习Maven的,从网上下载了Maven3.2.5,也配置好了!但是没法用,一用就报错,问度娘!结果很不幸,好像必须能上外网。买了表的,这让我们断网狗怎么用啊!公司基于安全方面的考虑,内外网都是物理隔绝的,算了,不学Maven了,等能上网了再学吧!还是学习Shiro吧!

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能

Shiro能做什么

认证:验证用户来核实他们的身份

授权:对用户执行访问控制,如:判断用户是否被分配了一个确定的安全角色

判断用户是否被允许做某事

会话管理:在任何环境下使用Session API,即使没有Web 或EJB 容器。

加密:以更简洁易用的方式使用加密的功能,保护或隐藏数据防止被偷窥

Realms:聚集一个或多个用户安全数据的数据源,并作为一个单一的复合用户

“视图”。

启用单点登录(SSO)功能。

为没有关联到登录的用户启用"Remember Me"服务

其它的自己百度。好像我们学习任何一种编程语言都是从HelloWorld开始的,这次也不例外,介绍一下开发工具和开发环境,jdk1.6.0_43+Tomcat6.0.29+MyEclipse10.5,没有使用Maven。

 

一、新建web工程,工程名为ShrHello,选择Java EE5.0

二、在src下新建shiro.ini文件

 

[users]

zhang=1234,role1

wang=123,role2

 

[roles]

role1=p1

role2=p2

 

三、大体解释一下上面的意思,分别建立了两个用户,两个角色

用户名:zhang

密码:1234

角色: role1

 

用户名:wang

密码:123

角色: role2

 

四、新建类HelloWorldTest.java

package com.shiro.test;

 

import org.apache.shiro.SecurityUtils;

import org.apache.shiro.authc.AuthenticationException;

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;

 

/**

*

* 类名: HelloWorldTest.java

* 作者: 张述飞

* 创建时间: 2016-2-16下午2:32:14

* 版本: V1.0

* 功能描述:

*/

public class HelloWorldTest {

 

public static void main(String[] args) {

//1、获取SecurityManager工厂,此处使用Ini配置文件初始化SecurityManager

Factory<SecurityManager> factory = newIniSecurityManagerFactory("classpath:shiro.ini");

//2、得到SecurityManager实例,并绑定给SecurityUtils

SecurityManager securityManager = factory.getInstance();

SecurityUtils.setSecurityManager(securityManager);

//3、得到Subject及创建用户名/密码身份验证Token(即用户身份/凭证)

Subject subject = SecurityUtils.getSubject();

UsernamePasswordToken token = new UsernamePasswordToken("zhang", "1234");

try {

//4、登录,即身份验证

subject.login(token);

//权限验证

boolean flag = subject.isPermitted("p1");

System.out.println("flag==="+flag);

 

System.out.println("登陆成功,Hello World");

} catch (AuthenticationException e) {

//5、身份验证失败

e.printStackTrace();

System.out.println("登陆失败!");

}

//6、退出

subject.logout();

}

 

}

五、需导入的jar包

commons-logging-1.1.3.jar

shiro-core-1.2.4.jar

slf4j-api-1.7.9.jar

slf4j-jdk14-1.7.9.jar

 

六、测试

运行HelloWorldTest.java,

控制台会显示

2016-2-16 16:48:36org.apache.shiro.session.mgt.AbstractValidatingSessionManagerenableSessionValidation

信息: Enabling session validation scheduler...

flag===true

登陆成功,Hello World!

 

七、这是我在做项目时遇到的几个错误,写下来以备再查!

Exception in thread"main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

atorg.apache.shiro.config.IniFactorySupport.<clinit>(IniFactorySupport.java:38)

atcom.shiro.test.HelloWorldTest.main(HelloWorldTest.java:18)

Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

atjava.net.URLClassLoader$1.run(URLClassLoader.java:202)

atjava.security.AccessController.doPrivileged(Native Method)

atjava.net.URLClassLoader.findClass(URLClassLoader.java:190)

atjava.lang.ClassLoader.loadClass(ClassLoader.java:306)

atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

atjava.lang.ClassLoader.loadClass(ClassLoader.java:247)

...2 more

这个提示是没有导入slf4j-api-1.7.9.jar、slf4j-jdk14-1.7.9.jar这两个jar包

 

这是第一个Shiro程序,主要学习的是Shiro身份验证,基本上都是这么一个流程,验证用用户名密码是否正确-根据用户名查找对应的功能权限!

 

代码下载地址:http://download.csdn.net/detail/zhangshufei8001/9440424

 

分享到:
评论

相关推荐

    Shiro学习第一式身份验证1(HelloWorld)

    在“Shiro学习第一式身份验证1(HelloWorld)”中,我们将探讨如何通过 Shiro 进行基本的身份验证设置,实现一个简单的 "Hello, World!" 示例。 1. **Shiro 框架介绍**: Apache Shiro 是一款轻量级的安全框架,它...

    Shiro学习第一式身份验证2

    "Shiro学习第一式身份验证2"着重讲解了Shiro的身份验证过程,包括单个Realm、多个Realm以及JDBC Realm的使用。 1. **身份验证(Authentication)**:身份验证是验证用户是否为他们声称的那个用户的过程。在Shiro中...

    shiro学习笔记.rar

    3) Shiro调用Realm进行身份验证, Realm会从数据源查询用户信息并与提交的凭证进行匹配。 4) 验证成功后,Shiro创建一个基于当前Subject的安全会话。 **4. 授权机制** Shiro的授权通过Role(角色)和Permission...

    跟我学Shiro第12章Demo(仅JAVA SE+Web+Shiro权限注解)

    《跟我学Shiro第12章Demo:Java SE、Web与Shiro权限注解实践》 Apache Shiro是一款强大的安全框架,广泛应用于Java项目中,提供了身份验证、授权、会话管理和加密等功能。本Demo主要涵盖了Shiro在Java Standard ...

    Shiro+Spring Security学习文档

    在IT安全领域,Apache Shiro和Spring Security是两个非常重要的框架,它们主要用于应用程序的安全管理,包括身份验证、授权、会话管理和加密等。本学习文档集合了这两个框架的相关知识,旨在帮助开发者深入理解和...

    Shiro 开发文档中文版

    Apache Shiro是一个开源的安全框架,旨在简化身份验证、授权、会话管理和加密等领域的工作,让应用系统的权限开发更加便捷。Shiro的API设计清晰直观,强调易于使用和理解,其目标是在保证安全性的同时,尽量减少...

    shiro 第七章 完整Demo

    Shiro 提供了如 `AuthcFilter`(用于用户身份验证)和 `RolesAuthorizationFilter`(用于角色授权)等过滤器。通过配置这些过滤器,我们可以指定哪些 URL 需要经过哪些安全检查。 2. **创建 SecurityManager**: ...

    学习shiro中的加密程序

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,使得在Java应用中处理安全性变得更加简单。在这个“学习shiro中的加密程序”项目中,我们将会探讨Shiro如何帮助开发者实现...

    Shiro学习教程源代码

    第二章 身份验证 第三章 授权 第四章 INI配置 第五章 编码/加密 第六章 Realm及相关对象 第七章 与Web集成 第八章 拦截器机制 第九章 JSP标签 第十章 会话管理 第十一章 缓存机制 第十二章 与Spring集成 第十三章 ...

    Apache_Shiro_使用手册(一)Shiro架构介绍

    - **认证**:这是指用户的身份验证过程,通常被称为“登录”。Shiro 能够处理用户提供的凭据(如用户名和密码),并与已知的用户记录进行对比,以验证用户的身份。 - **授权**:即访问控制,用于决定用户是否有权限...

    一头扎进Shiro视频教程 1-4讲

    首先,第一讲通常会介绍Shiro的基本概念和架构,包括它的三大核心组件:认证(Authentication)、授权(Authorization)和会话管理(Session Management)。认证是指验证用户身份,授权则是确定用户是否有权限访问...

    shiro使用的jar包

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等核心功能。在Java项目中,Shiro可以帮助开发者轻松地处理用户的安全需求,从而让开发者可以更加专注于业务逻辑的实现。...

    cas+shiro+spring实例

    **CAS (Central Authentication Service)** 是一个开源的身份验证框架,主要功能是提供统一的用户身份验证服务,允许用户在多个应用系统中只需要登录一次即可访问所有相互信任的应用。CAS的核心概念包括服务提供商和...

    Shiro实现登录授权功能

    1. **身份验证(Authentication)**:这是验证用户身份的过程,确保用户确实是他们声称的那个用户。在 Shiro 中,你可以通过自定义 Realm 实现数据源的连接,比如从数据库中查询用户信息。当用户提交用户名和密码时...

    jfina_shiro_jfinal+shiro_fromjh1_shiro_

    《jfina_shiro_jfinal+shiro_fromjh1_shiro_》是一个关于集成JFinal和Apache Shiro的项目实例,旨在构建一个具备权限管理功能的Web应用。在这个项目中,JFinal作为轻量级Java Web开发框架,负责处理HTTP请求、路由和...

    Shiro安全框架概念

    Shiro的一个显著优点是其简单易用的API,开发者可以通过简单的调用来实现身份验证和授权。Shiro支持多种数据源进行身份验证,如JDBC、LDAP、Kerberos和Microsoft Active Directory,这使得它非常适合大型企业中的单...

    shiro授权 shiro和企业项目整合开发

    用户选择“记住我”后,Shiro 会生成一个长期的 token 存储在客户端(如 cookie),并在后续请求时自动进行身份验证。这个功能需谨慎使用,因为它降低了安全性。 以上就是关于 Shiro 授权、自定义 Realm、企业项目...

    shiro相关lib包.zip

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密服务。Shiro的主要目标是简化企业级应用的安全实现,让开发者能够更专注于业务逻辑,而不是安全细节。在这个"shiro-cas-...

    shiro所有jar包

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,使得在Java应用中处理安全性变得更加简单。Shiro不仅适合大型企业级应用,也适用于小型项目,因为它的API设计直观易用。当...

Global site tag (gtag.js) - Google Analytics