`
kdboy
  • 浏览: 761411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于Spring框架的Shiro配置

阅读更多
一、在web.xml中添加shiro过滤器
	<!-- 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保护你的应用
17
4
分享到:
评论
17 楼 风雪无殇 2016-04-10  
请教一个问题:
  我在 shiro-spring 与异步通信框(基于servlet3 和spring mvc 的callable)架结合使用时,发现虽然能够实现异步响应,但是回话就会报错,也就是无法keep-alived   请问怎么解决这个问题。
15 楼 yangleqiao 2014-06-10  
求一个demo  先谢谢  我的邮箱leqiao88@163.com
14 楼 冬天秋天 2013-12-09  
哥们,你的代码贴得不全面啊。
13 楼 qq466862016 2013-07-23  
demo 求 发下  466862016@qq.com
12 楼 kdboy 2012-11-07  
直觉 写道
能不能贴下 User  ,user.getRoles()   是咋么弄的

roles是User对象的属性,是用户关联的角色列表。
11 楼 直觉 2012-11-07  
能不能贴下 User  ,user.getRoles()   是咋么弄的
10 楼 holysky 2012-03-28  
貌似是springside的代码啊!
9 楼 oppal 2012-03-26  
springside里的mini-web就是demo了
8 楼 a19870822cp 2011-12-22  
求demo 好难弄
a19871001dms@163.com
7 楼 guangsheng_sun 2011-12-08  
guangsheng_sun@126.com
6 楼 guangsheng_sun 2011-12-08  
给个demo看看吧,试了下,不成功啊
5 楼 binghejinjun 2011-09-14  
楼主,问你个问题,我自定义的登录页面form里的action怎么写呢?提交给谁呢?怎样才能到达你的MyRealm中的认证方法呢?
4 楼 johnjmx 2011-08-29  
能给个demo吗?  johnjmx@126.com
3 楼 wzdduncan 2011-08-15  
可否给个demo呢? wzdduncan@163.com
2 楼 quickbomber 2011-08-11  
是啊,能否发一个demo呢?
quickbomber@gmail.com
1 楼 mjjs04 2011-08-04  
能给个DEMO吗

相关推荐

    Spring Shiro 学习系统 Spring-Shiro-training

    Spring框架则是一个广泛使用的Java企业级应用开发框架,涵盖了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等多个领域。将Spring与Shiro结合,可以充分利用两者的优点,为应用程序提供全面的安全性支持...

    基于Spring Boot和Shiro框架的权限管理系统.zip

    基于Spring Boot和Shiro框架的权限管理系统 项目简介 本项目是一个基于Spring Boot和Shiro框架的权限管理系统,结合Vue.js实现前后端分离。系统支持按钮接口级别的权限控制,确保用户只能访问其权限范围内的资源。...

    基于Spring框架的Shiro配置方法

    以下将详细介绍基于Spring框架的Shiro配置方法。 首先,我们需要在`web.xml`中配置Shiro的过滤器。这一步是设置Shiro的核心过滤器`DelegatingFilterProxy`,它会代理到Spring的Bean中。配置如下: ```xml &lt;!-- ...

    Spring shiro安全框架介绍

    Spring Shiro是将Shiro安全框架与Spring框架结合使用的一种模式。Shiro是一个强大且灵活的开源安全框架,提供了认证、授权、加密和会话管理等功能。通过与Spring框架的集成,Spring Shiro能够更好地适应Java应用的...

    spring shiro整合

    它是Spring框架的一部分,提供了一种模型-视图-控制器的设计模式,使得开发者能够将业务逻辑、控制流程和用户界面分离。Spring MVC通过DispatcherServlet接收请求,通过HandlerMapping找到对应的Controller,然后...

    spring+shiro权限整合

    首先,让我们了解Spring框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极大地简化了Java应用的开发。它提供了IoC容器,用于管理对象的生命...

    maven-spring-shiro

    接着,Spring框架是Java领域中广泛使用的开源框架,其核心特性包括依赖注入(DI)和面向切面编程(AOP)。在本项目中,Spring与Spring MVC共同工作,提供模型-视图-控制器(MVC)架构,用于处理HTTP请求和响应,以及...

    spring-shiro-demo

    【标题】"spring-shiro-demo" 是一个基于Spring和Apache Shiro框架的示例项目,旨在展示如何在Java Web应用中整合这两个强大的安全框架来实现用户认证和授权。 【描述】"spring-shiro-demo" 提供了实际操作的代码,...

    springcloud-shiro

    1. **Shiro配置**:配置Shiro的安全管理,包括定义 Realm(域)以获取用户信息,设置权限规则,以及登录、登出逻辑等。 2. **Spring Boot整合**:在Spring Boot的主配置类中,将Shiro与Spring Boot的生命周期进行...

    Spring boot shiro

    Spring Boot 是基于Spring框架的开发工具,它简化了创建独立的、生产级别的基于Spring的应用程序的过程。其核心特性包括自动配置、起步依赖、命令行接口(CLI)和内嵌的HTTP服务器等。Spring Boot 的目标是让你能够...

    spring shiro整合入门

    Spring框架作为Java领域最流行的框架之一,提供了丰富的功能,而Apache Shiro则是一款强大的安全管理框架,专注于身份验证、授权和会话管理。将Spring与Shiro进行整合,可以构建出高效且灵活的安全管理体系。本文将...

    springshiro

    Spring框架是企业级应用开发的基石,它通过依赖注入(DI)和面向切面编程(AOP)简化了Java应用的开发。Spring的IoC容器管理着应用对象的生命周期和依赖关系,而SpringMVC则为Web应用提供了模型-视图-控制器(MVC)...

    基于springmybatisshiro面向接口开发的的一套后台管理系统

    1. **Spring框架**:Spring是Java开发中不可或缺的一部分,它提供了一个全面的编程和配置模型,使得开发人员能够更专注于编写应用程序,而不是处理基础设施问题。在本系统中,Spring作为依赖注入(DI)容器,负责...

    spring boot shiro demo项目

    Spring Boot Shiro Demo项目是一个基于Spring Boot框架与Apache Shiro实现的权限管理示例,旨在帮助开发者快速理解和应用Shiro进行权限控制。相比Spring Security,Shiro通常被认为更易于理解和使用,更适合小型到...

    基于Java语言的Spring Boot Shiro框架设计源码

    该项目是一款基于Java语言的Spring Boot框架结合Shiro安全认证机制的源码,共包含32个文件,其中Java源文件25个,XML配置文件5个,Git忽略文件1个,YAML配置文件1个,适用于构建安全可靠的应用程序。

    基于Spring Boot和Shiro框架的ETIMS实验教学信息管理系统设计源码

    本项目是一款基于Spring Boot和Shiro框架构建的实验教学信息管理系统源码,包含603个文件,涉及259个Java源文件、87个HTML文件、56个JavaScript文件、54个PNG图像文件、34个CSS样式文件、31个XML配置文件、21个JPG...

    Spring框架中整合Shiro

    本文将详细介绍如何在Spring框架中整合Shiro,实现身份识别(authc)和鉴权管理功能。 首先,我们需要引入Shiro的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache....

    基于Spring shiro mybatis 的客户关系管理系统

    1. **Spring框架**:Spring是Java领域的一个重量级框架,它提供了全面的编程和配置模型,简化了企业级应用的开发。在这个CRM系统中,Spring主要负责依赖注入(DI)和面向切面编程(AOP),同时也可能包括Spring MVC...

    最全的安全框架shiro学习视频

    Shiro可以很容易地与Spring框架集成,这使得开发者可以在Spring环境中方便地管理和使用Shiro的各种组件。Spring提供了多种方式来集成Shiro,包括使用Spring的XML配置文件或者Java配置类。例如,在Spring的配置文件中...

    spring-shiro-training-master.zip_guide8go_shiro_spring_spring 权限

    本教程将深入探讨如何结合Spring框架与Apache Shiro库,构建一套强大的权限管理系统。Spring作为Java领域的主流框架,提供了丰富的功能和灵活的扩展性;而Shiro则是一个轻量级的安全框架,专注于身份验证、授权和...

Global site tag (gtag.js) - Google Analytics