- 浏览: 70227 次
- 性别:
- 来自: 上海
文章分类
最新评论
一、在web.xml中添加shiro过滤器
二、在Spring的applicationContext.xml中添加shiro配置
1、添加shiroFilter定义
2、添加securityManager定义
3、添加realm定义
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
- <!-- Shiro filter-->
- < filter >
- < filter-name > shiroFilter </ filter-name >
- < filter-class >
- org.springframework.web.filter.DelegatingFilterProxy
- </ filter-class >
- </ filter >
- < filter-mapping >
- < filter-name > shiroFilter </ filter-name >
- < url-pattern > /* </ url-pattern >
- </ filter-mapping >
二、在Spring的applicationContext.xml中添加shiro配置
1、添加shiroFilter定义
- <!-- Shiro Filter -->
- < bean id = "shiroFilter" class = "org.apache.shiro.spring.web.ShiroFilterFactoryBean" >
- < property name = "securityManager" ref = "securityManager" />
- < property name = "loginUrl" value = "/login" />
- < property name = "successUrl" value = "/user/list" />
- < property name = "unauthorizedUrl" value = "/login" />
- < property name = "filterChainDefinitions" >
- < value >
- /login = anon
- /user/** = authc
- /role/edit/* = perms[role:edit]
- /role/save = perms [role:edit]
- /role/list = perms [role:view]
- /** = authc
- </ value >
- </ property >
- </ bean >
2、添加securityManager定义
- < bean id = "securityManager" class = "org.apache.shiro.web.mgt.DefaultWebSecurityManager" >
- < property name = "realm" ref = "myRealm" />
- </ bean >
3、添加realm定义
- < bean id = " myRealm" class = "com...MyRealm" />
三、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法
- public class MyRealm extends AuthorizingRealm{
- private AccountManager accountManager;
- public void setAccountManager(AccountManager accountManager) {
- this .accountManager = accountManager;
- }
- /**
- * 授权信息
- */
- protected AuthorizationInfo doGetAuthorizationInfo(
- PrincipalCollection principals) {
- String username=(String)principals.fromRealm(getName()).iterator().next();
- if ( username != null ){
- User user = accountManager.get( username );
- if ( user != null && user.getRoles() != null ){
- SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
- for ( SecurityRole each: user.getRoles() ){
- info.addRole(each.getName());
- info.addStringPermissions(each.getPermissionsAsString());
- }
- return info;
- }
- }
- return null ;
- }
- /**
- * 认证信息
- */
- protected AuthenticationInfo doGetAuthenticationInfo(
- AuthenticationToken authcToken ) throws AuthenticationException {
- UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
- String userName = token.getUsername();
- if ( userName != null && ! "" .equals(userName) ){
- User user = accountManager.login(token.getUsername(),
- String.valueOf(token.getPassword()));
- if ( user != null )
- return new SimpleAuthenticationInfo(
- user.getLoginName(),user.getPassword(), getName());
- }
- return null ;
- }
- }
参考资料:让Apache Shiro保护你的应用
(http://kdboy.iteye.com/blog/1103794)
发表评论
-
Tomcat配置远程调试端口
2016-07-26 15:35 0Tomcat配置远程调试端口 1.Linxu系统: apa ... -
获取通过body传输的postdata数据
2016-07-01 18:39 0目前基于rest风格的很多API开始使用通过body da ... -
LOG4J 配置
2015-04-01 17:44 690log4j.rootLogger = info, consol ... -
利用Java实现压缩与解压缩(zip、gzip)支持中文路径
2011-10-19 22:21 1404zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是 ... -
安全有效的实现两星期内自动登陆功能
2011-10-19 22:02 1158自动登陆流程: 1. 保存用户信息阶段: 当用户登陆网站 ... -
web应用 相对路径 绝对路径 总结
2011-05-20 11:50 2952参考资料: http://www.iteye.com/topi ... -
Spring,hibernate,struts的面试笔试题(含答案)
2011-05-07 14:23 1Hibernate工作原理及为什么要用? 原 ... -
spring入门编程问题集锦
2011-05-07 14:19 10641、如何学习Spring? 你 ... -
SchemaExport工具实战(hibernate)
2011-03-05 14:57 977SchemaExport工具实战 通常我们使用生成数据库 ... -
用java实现zip压缩
2011-02-12 11:42 1032今天写了个用java压缩的功能,可以实现对文件和目录的压缩。 ... -
java实现zip与unzip
2011-02-12 11:26 1179jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简 ... -
一个java处理JSON格式数据的通用类
2011-02-11 14:57 1739进入需要在项目中用java处理json格式的数据,因此封装了一 ... -
高效的Java异常处理
2011-01-20 20:37 903Java开发人员可以做出的 ... -
Java 理论与实践: 关于异常的争论
2011-01-20 20:28 679与 C++ 类似,Java 语言也 ... -
讲解Java异常
2011-01-20 14:35 792六种异常处理的陋习 ... -
jsp2.0自定义标签Tag
2011-01-13 00:56 1937在JSP2.0 中,对于自定义 ... -
Axis2部署WebService
2011-01-12 21:14 2077Axis2下提供了三种配置文件,一种是整个系统的全局配置axi ... -
高效java异常处理机制
2011-01-12 16:34 1017Java 开发人员可以做 ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2010-12-20 17:42 768一、 1、启动一个WEB项 ... -
Java人民币小写转大写(小数点后只支持到分)
2010-08-02 18:04 1462package com.resource.test; imp ...
相关推荐
Spring框架则是一个广泛使用的Java企业级应用开发框架,涵盖了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等多个领域。将Spring与Shiro结合,可以充分利用两者的优点,为应用程序提供全面的安全性支持...
基于Spring Boot和Shiro框架的权限管理系统 项目简介 本项目是一个基于Spring Boot和Shiro框架的权限管理系统,结合Vue.js实现前后端分离。系统支持按钮接口级别的权限控制,确保用户只能访问其权限范围内的资源。...
以下将详细介绍基于Spring框架的Shiro配置方法。 首先,我们需要在`web.xml`中配置Shiro的过滤器。这一步是设置Shiro的核心过滤器`DelegatingFilterProxy`,它会代理到Spring的Bean中。配置如下: ```xml <!-- ...
Spring Shiro是将Shiro安全框架与Spring框架结合使用的一种模式。Shiro是一个强大且灵活的开源安全框架,提供了认证、授权、加密和会话管理等功能。通过与Spring框架的集成,Spring Shiro能够更好地适应Java应用的...
它是Spring框架的一部分,提供了一种模型-视图-控制器的设计模式,使得开发者能够将业务逻辑、控制流程和用户界面分离。Spring MVC通过DispatcherServlet接收请求,通过HandlerMapping找到对应的Controller,然后...
首先,让我们了解Spring框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极大地简化了Java应用的开发。它提供了IoC容器,用于管理对象的生命...
接着,Spring框架是Java领域中广泛使用的开源框架,其核心特性包括依赖注入(DI)和面向切面编程(AOP)。在本项目中,Spring与Spring MVC共同工作,提供模型-视图-控制器(MVC)架构,用于处理HTTP请求和响应,以及...
【标题】"spring-shiro-demo" 是一个基于Spring和Apache Shiro框架的示例项目,旨在展示如何在Java Web应用中整合这两个强大的安全框架来实现用户认证和授权。 【描述】"spring-shiro-demo" 提供了实际操作的代码,...
1. **Shiro配置**:配置Shiro的安全管理,包括定义 Realm(域)以获取用户信息,设置权限规则,以及登录、登出逻辑等。 2. **Spring Boot整合**:在Spring Boot的主配置类中,将Shiro与Spring Boot的生命周期进行...
Spring Boot 是基于Spring框架的开发工具,它简化了创建独立的、生产级别的基于Spring的应用程序的过程。其核心特性包括自动配置、起步依赖、命令行接口(CLI)和内嵌的HTTP服务器等。Spring Boot 的目标是让你能够...
Spring框架作为Java领域最流行的框架之一,提供了丰富的功能,而Apache Shiro则是一款强大的安全管理框架,专注于身份验证、授权和会话管理。将Spring与Shiro进行整合,可以构建出高效且灵活的安全管理体系。本文将...
Spring框架是企业级应用开发的基石,它通过依赖注入(DI)和面向切面编程(AOP)简化了Java应用的开发。Spring的IoC容器管理着应用对象的生命周期和依赖关系,而SpringMVC则为Web应用提供了模型-视图-控制器(MVC)...
1. **Spring框架**:Spring是Java开发中不可或缺的一部分,它提供了一个全面的编程和配置模型,使得开发人员能够更专注于编写应用程序,而不是处理基础设施问题。在本系统中,Spring作为依赖注入(DI)容器,负责...
Spring Boot Shiro Demo项目是一个基于Spring Boot框架与Apache Shiro实现的权限管理示例,旨在帮助开发者快速理解和应用Shiro进行权限控制。相比Spring Security,Shiro通常被认为更易于理解和使用,更适合小型到...
该项目是一款基于Java语言的Spring Boot框架结合Shiro安全认证机制的源码,共包含32个文件,其中Java源文件25个,XML配置文件5个,Git忽略文件1个,YAML配置文件1个,适用于构建安全可靠的应用程序。
本项目是一款基于Spring Boot和Shiro框架构建的实验教学信息管理系统源码,包含603个文件,涉及259个Java源文件、87个HTML文件、56个JavaScript文件、54个PNG图像文件、34个CSS样式文件、31个XML配置文件、21个JPG...
本文将详细介绍如何在Spring框架中整合Shiro,实现身份识别(authc)和鉴权管理功能。 首先,我们需要引入Shiro的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
1. **Spring框架**:Spring是Java领域的一个重量级框架,它提供了全面的编程和配置模型,简化了企业级应用的开发。在这个CRM系统中,Spring主要负责依赖注入(DI)和面向切面编程(AOP),同时也可能包括Spring MVC...
Shiro可以很容易地与Spring框架集成,这使得开发者可以在Spring环境中方便地管理和使用Shiro的各种组件。Spring提供了多种方式来集成Shiro,包括使用Spring的XML配置文件或者Java配置类。例如,在Spring的配置文件中...
本教程将深入探讨如何结合Spring框架与Apache Shiro库,构建一套强大的权限管理系统。Spring作为Java领域的主流框架,提供了丰富的功能和灵活的扩展性;而Shiro则是一个轻量级的安全框架,专注于身份验证、授权和...