package com.miv.shiro.common;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authz.AuthorizationFilter;
public class MIVshiroFilter extends AuthorizationFilter {
@Override
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object weaving)
throws Exception {
// TODO Auto-generated method stub
Subject subject = SecurityUtils.getSubject();
String[] weaving_ = (String[]) weaving;
String[] rolesArray = weaving_[0].split(",");
if (rolesArray == null || rolesArray.length == 0) {
return true;
}
for (int i = 0; i < rolesArray.length; i++) {
if (subject.hasRole(rolesArray[i])) {
return true;
}
}
if (subject.isAuthenticated()) {// 认证
// subject.getSession().;
// ((HttpServletRequest) request).getSession().invalidate();
subject.logout();
} else if (subject.isRemembered()) {// 记住我
subject.logout();
// ((HttpServletRequest) request).getSession().invalidate();
} else {// 其他
}
subject.getSession().setAttribute("role_code", rolesArray);
return false;
}
}
分享到:
相关推荐
7. **拦截器和过滤器**:理解Shiro的Filter机制,如何配置和自定义过滤器,实现特定的安全策略。 8. **单元测试与集成测试**:编写测试用例来验证Shiro的安全配置是否有效,包括模拟用户登录、权限验证等。 9. **...
可能包括自定义的Zuul过滤器,用于在请求到达后端服务之前进行权限检查。 4. **认证和授权**:Shiro提供了灵活的认证和授权机制。例如,可以基于角色或权限进行访问控制,可以实现记住我功能,以及支持多种认证方式...
- **shiro-web.jar**:用于Web应用的组件,如过滤器。 - **shiro-spring.jar**:Spring框架的集成,便于在Spring应用中使用Shiro。 - **log4j.jar, slf4j.jar**:日志处理库,Shiro依赖这些库进行日志输出。 了解和...
Shiro Filter支持多种过滤器,如 anon(匿名访问)、authc(身份验证)、roles(角色权限)和perms(权限许可)等。通过配置这些过滤器,我们可以指定哪些URL需要用户登录才能访问,哪些URL需要特定角色或权限。 在...
Shiro还提供了Web应用程序的安全管理支持,包括过滤器(Filter)如`FormAuthenticationFilter`和`AuthorizationFilter`,它们可以方便地与Servlet容器集成,实现Web应用的安全控制。 7. **集成** 将Shiro集成到...
本教程将深入探讨如何结合Spring框架与Apache Shiro库,构建一套强大的权限管理系统。Spring作为Java领域的主流框架,提供了丰富的功能和灵活的扩展性;而Shiro则是一个轻量级的安全框架,专注于身份验证、授权和...
- 过滤器链:Shiro的Filter Chain定义了请求的处理流程,如登录、权限检查等,通过`shiro.filterchains`配置。 - 安全注解:结合Spring的注解,如`@PreAuthorize`,可以在方法级别控制权限。 4. 分布式环境支持:...
2. 过滤器链设置:定义哪些URL需要经过哪些过滤器,例如anon(匿名访问)、authc(认证过滤器)、roles(角色过滤器)等。 3. Shiro与Spring MVC的整合:配置ShiroFilter,使其作为Spring MVC的拦截器运行。 4. 安全...
5. **Web 支持**:Shiro 提供了Web 应用的安全控制,如过滤器(Filter)来处理HTTP请求,可以实现登录、权限控制等功能。 6. **测试支持**:Shiro 还提供了方便的测试类,使得在单元测试中可以很容易地模拟用户安全...
- 在Spring配置文件中定义Shiro的过滤器链,如`FormAuthenticationFilter`、`AuthorizationFilter`等,控制用户请求的过滤。 3. **Spring MVC 与 Shiro 整合**: - Shiro的Web支持主要是通过Filter实现的,Spring...
- **Filter配置**:Shiro通过Filter实现Web层的拦截,Spring可以帮助管理这些Filter并整合到Spring MVC的过滤器链中。 3. **数据库设计**: - 用户表:通常包含用户名、密码、角色等信息,用于认证和授权。 - ...
- 使用 Shiro 提供的过滤器(如 `authc` 和 `perms`)配置Web应用的安全拦截。 - 利用 Shiro 提供的加密工具对敏感数据进行处理。 6. **Shiro的扩展性** Shiro 的设计允许开发者自定义认证和授权策略,创建自己...
本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能
4. **Web过滤器**:Shiro的过滤器链可以拦截请求,执行认证、授权等操作,例如FormLoginFilter处理登录请求,UnauthorizedHandler处理未授权访问。 5. **回调函数**:可以自定义回调函数,比如在用户登录失败时进行...
总结,这个"shiro整合spring项目实例"涵盖了Shiro与Spring的整合流程,包括核心组件配置、Realm实现、过滤器链设定、权限管理、Session操作以及测试验证。通过这个实例,开发者能够更好地理解和掌握Shiro在实际项目...
- **Filters(过滤器)**:Shiro通过一系列预定义的过滤器来实现其功能,如`authc`(认证过滤器)、`roles`(角色过滤器)、`perms`(权限过滤器)等。在`shiro.ini`或Spring配置文件中,需要定义过滤器链并映射URL...
2. 配置Spring Security:定义Spring Security的配置类,启用ShiroFilter,并设置相应的过滤器链。 3. 配置Shiro:创建Shiro的配置类,定义Realm,实现认证和授权逻辑。 Realm连接到你的数据源,负责从数据库中获取...
最后我们还需要在/spring-node-1/src/main/webapp/WEB-INF/web.xml 文件中配置相关的过滤器拦截全部请求 ``` xml <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter....
在Spring Boot的配置文件`application.yml`或`application.properties`中,可以设置Shiro的基本属性,如全局过滤器、登录URL、未授权页面等。例如: ```yaml shiro: filter-chain-definition: /login=authc /...
Spring Boot简化了Shiro的集成过程,我们可以在配置文件中添加Shiro的依赖,并通过自定义Shiro配置类来配置过滤器链。Shiro的核心组件包括Subject、SecurityManager、Realm等,它们负责处理用户的登录、权限验证以及...