`

shiro (八) spring结合 --自定义过滤器(角色篇)

 
阅读更多

 

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;

    }

}


分享到:
评论

相关推荐

    Spring Shiro 学习系统 Spring-Shiro-training

    7. **拦截器和过滤器**:理解Shiro的Filter机制,如何配置和自定义过滤器,实现特定的安全策略。 8. **单元测试与集成测试**:编写测试用例来验证Shiro的安全配置是否有效,包括模拟用户登录、权限验证等。 9. **...

    springcloud-shiro

    可能包括自定义的Zuul过滤器,用于在请求到达后端服务之前进行权限检查。 4. **认证和授权**:Shiro提供了灵活的认证和授权机制。例如,可以基于角色或权限进行访问控制,可以实现记住我功能,以及支持多种认证方式...

    shiro-root-1.2.3-source-release zipa包 和相关jar包

    - **shiro-web.jar**:用于Web应用的组件,如过滤器。 - **shiro-spring.jar**:Spring框架的集成,便于在Spring应用中使用Shiro。 - **log4j.jar, slf4j.jar**:日志处理库,Shiro依赖这些库进行日志输出。 了解和...

    springboot-shiro

    Shiro Filter支持多种过滤器,如 anon(匿名访问)、authc(身份验证)、roles(角色权限)和perms(权限许可)等。通过配置这些过滤器,我们可以指定哪些URL需要用户登录才能访问,哪些URL需要特定角色或权限。 在...

    shiro常用jar包-1.2.2

    Shiro还提供了Web应用程序的安全管理支持,包括过滤器(Filter)如`FormAuthenticationFilter`和`AuthorizationFilter`,它们可以方便地与Servlet容器集成,实现Web应用的安全控制。 7. **集成** 将Shiro集成到...

    spring-shiro-training-master.zip_guide8go_shiro_spring_spring 权限

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

    springboot-shiro认证系统框架--成型框架

    - 过滤器链:Shiro的Filter Chain定义了请求的处理流程,如登录、权限检查等,通过`shiro.filterchains`配置。 - 安全注解:结合Spring的注解,如`@PreAuthorize`,可以在方法级别控制权限。 4. 分布式环境支持:...

    Apache Shiro 集成-spring

    2. 过滤器链设置:定义哪些URL需要经过哪些过滤器,例如anon(匿名访问)、authc(认证过滤器)、roles(角色过滤器)等。 3. Shiro与Spring MVC的整合:配置ShiroFilter,使其作为Spring MVC的拦截器运行。 4. 安全...

    shiro-root-1.3.2-source-release

    5. **Web 支持**:Shiro 提供了Web 应用的安全控制,如过滤器(Filter)来处理HTTP请求,可以实现登录、权限控制等功能。 6. **测试支持**:Shiro 还提供了方便的测试类,使得在单元测试中可以很容易地模拟用户安全...

    shiro整合spring+springmvcjar包

    - 在Spring配置文件中定义Shiro的过滤器链,如`FormAuthenticationFilter`、`AuthorizationFilter`等,控制用户请求的过滤。 3. **Spring MVC 与 Shiro 整合**: - Shiro的Web支持主要是通过Filter实现的,Spring...

    shiro+spring的Demo

    - **Filter配置**:Shiro通过Filter实现Web层的拦截,Spring可以帮助管理这些Filter并整合到Spring MVC的过滤器链中。 3. **数据库设计**: - 用户表:通常包含用户名、密码、角色等信息,用于认证和授权。 - ...

    shiro-root-1.2.2-source-release.zip

    - 使用 Shiro 提供的过滤器(如 `authc` 和 `perms`)配置Web应用的安全拦截。 - 利用 Shiro 提供的加密工具对敏感数据进行处理。 6. **Shiro的扩展性** Shiro 的设计允许开发者自定义认证和授权策略,创建自己...

    spring boot整合shiro实现url请求过滤

    本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能

    shiro和spring整合

    4. **Web过滤器**:Shiro的过滤器链可以拦截请求,执行认证、授权等操作,例如FormLoginFilter处理登录请求,UnauthorizedHandler处理未授权访问。 5. **回调函数**:可以自定义回调函数,比如在用户登录失败时进行...

    shiro整合spring项目实例

    总结,这个"shiro整合spring项目实例"涵盖了Shiro与Spring的整合流程,包括核心组件配置、Realm实现、过滤器链设定、权限管理、Session操作以及测试验证。通过这个实例,开发者能够更好地理解和掌握Shiro在实际项目...

    spring-shiro-training项目解读

    2. 配置Spring Security:定义Spring Security的配置类,启用ShiroFilter,并设置相应的过滤器链。 3. 配置Shiro:创建Shiro的配置类,定义Realm,实现认证和授权逻辑。 Realm连接到你的数据源,负责从数据库中获取...

    单点登录sso-shiro-cas-maven

    最后我们还需要在/spring-node-1/src/main/webapp/WEB-INF/web.xml 文件中配置相关的过滤器拦截全部请求 ``` xml &lt;filter-name&gt;shiroFilter&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter....

    Springboot + shiro权限管理shiro-master.zip

    在Spring Boot的配置文件`application.yml`或`application.properties`中,可以设置Shiro的基本属性,如全局过滤器、登录URL、未授权页面等。例如: ```yaml shiro: filter-chain-definition: /login=authc /...

    spring-boot-shiro-demo

    Spring Boot简化了Shiro的集成过程,我们可以在配置文件中添加Shiro的依赖,并通过自定义Shiro配置类来配置过滤器链。Shiro的核心组件包括Subject、SecurityManager、Realm等,它们负责处理用户的登录、权限验证以及...

    shiro 安全框架--最好的中文配置文档

    本篇文章将深入探讨 Shiro 的核心概念、配置步骤以及如何利用它来保护你的应用。 ### 一、Shiro 的核心组件 1. **认证**:Shiro 提供了身份验证(Authentication)机制,允许用户登录并验证其身份。这包括用户名/...

Global site tag (gtag.js) - Google Analytics