最近研究shiro,一开头就遇到了大困难,调试了3小时。
问题描述如下:shiro和spring mvc整合,shiro自定义了realm。
其中自定义的realm里面居然不能使用@Autowired注解标签注入相关的用户service。
百思不得其解,一项项跟踪,发现原来shiro 自定义realm的认证阶段属于filter,当时的spring bean还没有读取进来。
最后通过配置web.xml文件,把spring mvc的xml提高一点优先级,才最终解决了这个问题。
<!-- 配置spring容器监听器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext-shiro.xml,
/WEB-INF/classes/spring-mvc.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring web程序的第一层控制器, 负责处理程序请求 -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
注意红色这一项,我把springmvc的配置文件提上去,放到contextConfigLocation中去加载。
这样,就能在filter阶段注入其它已经注册了的bean。
具体参考了这篇文章:
http://blog.csdn.net/godha/article/details/13025099
相关推荐
整合SpringMVC和Shiro的核心目标是利用Shiro的强大安全功能来保护SpringMVC应用程序中的Controller和视图资源。以下是整合的关键步骤: 1. **依赖引入**:在项目中添加SpringMVC和Shiro的依赖库。确保pom.xml文件中...
SpringMVC 和 Shiro 框架的整合是企业级Web开发中常见的一种安全控制解决方案。SpringMVC 是一个强大的MVC(Model-View-Controller)框架,负责处理请求、展示视图以及业务逻辑;而 Apache Shiro 则是一个轻量级的...
文档"apache_shiro入门.docx"可能包含了Shiro的基本概念和用法介绍,例如Realm(认证和授权信息的数据源)、Subject(与当前安全操作相关的主体)、Session管理以及过滤器链的配置等内容。通过阅读这份文档,开发者...
本文将详细介绍如何将Shiro与Spring、SpringMVC进行整合,构建一个高效的J2EE安全框架,以实现对用户身份验证和权限控制。 首先,让我们理解这三个组件的角色: 1. **Apache Shiro**:Shiro的核心在于它提供了一套...
这样,当请求到达时,Shiro会自动处理认证和授权。 ```xml <filter-name>shiroFilter <filter-class>org.springframework.web.filter.DelegatingFilterProxy <param-name>targetFilterLifecycle ...
本项目是关于如何将CAS(Central Authentication Service)与SpringMVC和Shiro结合实现SSO的实践示例。 首先,我们来了解一下三个主要组件: 1. **CAS**: CAS是一个开源的身份验证框架,主要用于处理用户身份验证...
SpringMVC 是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)架构的 Web 应用程序,而 Apache Shiro 则是一个强大且易用的安全管理框架,用于处理认证、授权、会话管理和加密等安全问题。...
Apache Shiro是一个强大且易用的Java安全框架,提供了身份验证、授权、加密和会话管理功能,简化了处理这些问题的过程。本文将深入探讨如何将Shiro与Spring MVC进行整合,实现一个简单的用户权限管理系统。 首先,...
在整合 Spring MVC 和 Shiro 时,需要正确配置它们的依赖关系,比如在Spring的配置文件中添加Shiro的过滤器链,以及创建自定义的 Realm 来连接数据库进行用户验证。同时,还需要配置 Shiro 的权限规则,以便实现安全...
Shiro的常用组件有SecurityManager、Subject、Realm等,其中 Realm是连接应用和安全数据源的桥梁,通常需要自定义实现以对接MySQL数据库。 **三、MySql数据库** MySQL是一款开源、关系型数据库管理系统,广泛应用...
3. **`Shiro-MyShiro-权限认证,登录认证层`**:这部分包含了自定义的ShiroRealm类,用于实现用户认证逻辑。 4. **`Shiro-applicationContext-shiro.xml`**:Spring配置文件,用于整合Shiro与SpringMVC框架。 5. **...
这个"SpringMVC+Shiro项目实例"提供了一个完整的Web应用安全框架,通过整合SpringMVC的MVC架构和Shiro的安全管理,实现了用户登录、权限控制和会话管理等功能。H2数据库脚本的加入使得开发者可以快速搭建和测试环境...
而`ShiroSpringDemo`可能是一个更基础的版本,仅实现了SpringMVC和Shiro的整合,不涉及JPA和Hibernate。 总的来说,SpringMVC、Apache Shiro和JPA(Hibernate)的整合能够提供一个强大的Web应用安全架构,既满足了...
在整合SpringMVC和Shiro时,你需要做以下工作: 1. 引入Shiro的相关依赖:在项目中添加Shiro的Maven或Gradle依赖,确保可以使用其提供的类和接口。 2. 配置Shiro:创建一个Shiro的配置类,设置Realm(域)以处理...
Spring、SpringMVC和Shiro是Java开发中常用的三大框架,它们在企业级应用开发中起着关键作用。Spring作为核心容器,管理着应用的组件和依赖;SpringMVC是Spring框架的一部分,专用于构建Web应用程序的前端控制器;而...
3. **Shiro配置**:配置Shiro的安全设置,包括Realm(认证和授权信息源)、SecurityManager、过滤器链等,确保Shiro能够正确地处理安全事务。 4. **MongoDB配置**:配置MongoDB的数据源,包括连接URL、数据库名、...
- 登录与登出:通过Shiro的Subject接口实现用户的登录和登出功能,Shiro会自动处理令牌校验、登录失败处理等。 4. 无SQL配置 "亲测无sql"可能指的是Shiro配置中没有直接涉及SQL查询。这可能是通过静态数据或者...
这个"springMVC+mybatis+shiro+redis 项目整合demo"就是一个实例,展示了如何将这些技术集成到一个项目中,以实现高效的数据处理、用户认证授权和缓存管理。 首先,`SpringMVC` 是 Spring 框架的一部分,它是一个...
"Shiro+SpringMVC+Redis+MySQL实现单点登录"是一个典型的系统安全架构,它整合了多个技术组件来构建一个高效、可靠的单点登录(Single Sign-On, SSO)解决方案。以下是关于这个主题的详细知识点: 1. **Apache ...
本项目名为“SpringMvc整合mybatis和shiro权限管理系统”,旨在实现一个基于SpringMVC、MyBatis、Maven、EasyUI和Shiro的全面解决方案。下面将详细介绍这些技术及其整合过程中的关键知识点。 首先,**SpringMVC** ...