`

shiro (七) spring结合 -- 针对一个系统多角色单立各自首页——加密

 
阅读更多

 

package com.miv.shiro.common;

 

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Random;

 

import com.miv.core.constant.DatabaseConstants;

 

public class ShiroEncryption {

 

    public static Map<String, String[]> map = new HashMap<String, String[]>();

    public static final String[] ADMIN = { "admin", "animd", "nimda" };

    public static final String[] CALLCENTER = { "call", "callCenter", "callcenter" };

    public static final String[] AGENCY = { "agency", "acygen", "yacgen" };

    public static final String[] USER = { "user", "seru", "ures" };

    static {

        map.put(DatabaseConstants.ROLE_CODE_ADMIN + "", ADMIN);

        map.put(DatabaseConstants.ROLE_CODE_CALL_CENTER + "", CALLCENTER);

        map.put(DatabaseConstants.ROLE_CODE_AGENCY + "", AGENCY);

        map.put(DatabaseConstants.ROLE_CODE_USER + "", USER);

    }

    public static final boolean SUCCESS = true;

    public static final boolean FAILURE = false;

 

    // 加密

    public static String encryption(Integer ROLE_CODE) throws Exception {

        String[] encryption = map.get(ROLE_CODE + "");

        return encryption[getRandom(3)];

    }

 

    // 解密

    public static Integer decryption(String encryption) throws Exception {

        Integer ROLE_CODE = null;

        Iterator<String> iterator = map.keySet().iterator();

        decryption: while (iterator.hasNext()) {

            String key = iterator.next();

            String[] decryption = map.get(key);

            for (int i = 0; i < decryption.length; i++) {

                if (decryption[i].equalsIgnoreCase(encryption)) {

                    ROLE_CODE = Integer.valueOf(key);

                    break decryption;

                }

            }

        }

        return ROLE_CODE;

    }

 

    public static int getRandom(int divisor) {

        int randomI = 0;

        Random random = new Random();

        randomI = Math.abs(random.nextInt()) % divisor;

        return randomI;

    }

 

    public static String decryptionURL(Integer ROLE_CODE, boolean flag) {

        switch (ROLE_CODE.intValue()) {

            case 0: {

                break;

            }

            case 1: {

                if (flag) {

                    return "adminPortal/home";

                } else {

                    return "login/login";

                }

            }

            case 2: {

                if (flag) {

                    return "callcenterPortal/home";

                } else {

                    return "call_center_portal/login/login";

                }

            }

            case 3: {

                if (flag) {

                    return "agencyPortal/home";

                } else {

                    return "agency_portal/login/login";

                }

            }

            case 4: {

                if (flag) {

                    return "userPortal/home";

                } else {

                    return "login/login";

                }

            }

        }

        return "";

    }

 

    public static String decryptionURL(Integer ROLE_CODE) {

        switch (ROLE_CODE.intValue()) {

            case 0: {

                break;

            }

            case 1: {

                return "/adminPortal/home";

 

            }

            case 2: {

                return "/callcenterportal/device/active";

            }

            case 3: {

                return "/agencyPortal/home";

            }

            case 4: {

                return "/userPortal/home";

            }

        }

        return "";

    }

 

    public static String decryptionTitle(Integer ROLE_CODE) {

        switch (ROLE_CODE.intValue()) {

            case 0: {

                break;

            }

            case 1: {

                return "登录页管理员";

            }

            case 2: {

                return "登录页客服中心";

            }

            case 3: {

                return "登录页经销商";

            }

            case 4: {

                return "登录页普通用户";

            }

        }

        return "";

    }

 

    public static void main(String[] args) {

        Random random = new Random();

        System.out.println(random.nextInt());

        System.out.println(Math.abs(random.nextInt()) % 3);

    }

}


分享到:
评论

相关推荐

    管理系统系列--【基于shiro的权限管理系统——分布式版】一个用spring、mybatis、redis和shir.zip

    【标题】:“管理系统系列--【基于shiro的权限管理系统——分布式版】”是一个全面的教程,旨在介绍如何构建一个利用Spring、MyBatis、Redis和Shiro技术的分布式权限管理系统。这个项目旨在提供一个安全、高效且可...

    基于shiro、springmvc、mybatis权限管理系统

    本系统采用三大主流技术——Apache Shiro、SpringMVC和MyBatis,构建了一个高效、灵活的权限管理系统。 **Apache Shiro** Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可...

    管理系统系列--基于Spring MVC+MyBatis+Shiro+Dubbo开发的分布式后台管理系统.zip

    本系统采用了业界广泛使用的四大核心技术——Spring MVC、MyBatis、Shiro和Dubbo,构建了一个强大的分布式后台管理框架。下面将对这四大技术进行详细阐述,并探讨它们如何协同工作,以实现高效、安全的后台管理。 ...

    SpringBoot与Shiro整合-权限管理实战视频+源码

    Apache Shiro是一个强大且易用的Java安全框架,它能够非常容易地开发出足够好的应用——从简单的网站到复杂的企业级应用,都能够轻松应对。Shiro框架可以完成包括认证、授权、加密、会话管理、Web集成等任务,并且...

    spring-boot-study-master.zip

    Apache Shiro是一个强大的安全框架,提供认证、授权、会话管理和加密等功能。在Spring Boot项目中,Shiro可以实现细粒度的权限控制,保护系统资源的安全。 10. **Upload文件上传**: Spring Boot支持文件上传功能...

    Shiro与SSM整合(内含详细文档介绍)

    Apache Shiro 和 Spring Security (SSM) 是两个广泛使用的Java安全框架,它们分别提供认证、授权、会话管理和加密等功能,以确保Web应用程序的安全性。本资料包将深入讲解如何将Shiro与SSM整合,以实现更高效、灵活...

    SpringBoot+Shiro权限管理系统脚手架.zip

    而Apache Shiro则是一个强大且易用的安全框架,专门处理认证、授权、会话管理和加密等问题。当SpringBoot与Shiro相结合,可以构建出高效、稳定的权限管理系统。本文将深入探讨SpringBoot+Shiro的整合,以及如何利用...

    跟我一起学shiro 张开涛

    Apache Shiro是一款强大的Java安全框架,它为开发者提供了身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)和加密(Cryptography)等核心功能,使得开发人员能够轻松地在应用...

    shiro安全框架整合Mybatis

    Apache Shiro是一个功能强大且易于使用的Java安全框架,可执行身份验证、授权、加密和会话管理。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能...

    springmvc shiro使用

    Apache Shiro 是一个强大且易用的Java安全框架,可以提供认证、授权、加密和会话管理功能,同时具备良好的扩展性和灵活性。它通过三大核心组件——Subject(主题)、SecurityManager(安全管理器)和Realms(领域)...

    SpringMVC精品资源--spring+springmvc+mybatis+shiro整合DEMO.后台管理,权.zip

    总的来说,"SpringMVC精品资源——spring+springmvc+mybatis+shiro整合DEMO"是一个宝贵的参考资料,对于想要深入理解和掌握Java Web开发技术的开发者来说,是不可多得的学习材料。通过深入研究这个DEMO,开发者不仅...

    2018年SpringBoot与Shiro整合-权限管理实战视频

    Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常容易地开发出足够安全的应用。Shiro的目标是尽可能地减少开发人员在安全代码方面的编写工作量,使开发人员更多地关注...

    apache shiro整合struts2+spring+mybatis简单demo

    在这个“apache shiro整合struts2+spring+mybatis简单demo”中,我们将探讨如何将Shiro与三个流行的Java开发框架——Struts2、Spring和MyBatis进行集成,构建一个完整的安全管理体系。 首先,Struts2是一个基于MVC...

    shiro基础jar包.zip

    在“shiro基础jar包.zip”这个压缩包中,主要包含了一个核心组件——“shiro-core”,它是Shiro框架的基础,包含了处理用户认证、权限控制和会话管理的核心类。 **1. 身份验证(Authentication)** Shiro的核心组件...

    Java高级技术之Shiro

    * 并发验证(Concurrency):Shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。 * 测试支持(Testing):提供测试支持。 * 假装身份(Run As):允许一个用户假装为另一个...

    SpringMVC精品资源--基于SpringBoot + Shiro + MyBatisPlus的权限管理框架.zip

    在现代企业级应用开发中,Spring Boot、Shiro和MyBatisPlus是极为常见的技术组合,它们各自承担着关键的角色。Spring Boot简化了Spring应用程序的初始搭建以及配置过程,而Shiro则是一个强大的安全管理框架,负责...

    web项目集成shirodemo

    "web项目集成shiro demo,这是web项目集成shiro的一个综合案例" 提示我们这是一个示例项目,用于演示如何将Shiro与Web项目相结合。"综合案例"意味着它可能包含了多种Shiro的功能和用法,如用户登录、权限控制、会话...

    这是一个springboot+vue+shiro的后台权限管理系统,很全.zip

    本项目——“基于SpringBoot+Vue+Shiro的后台权限管理系统”是一个典型的IT毕业设计案例,旨在提供一个完整的、功能完善的后台管理平台,以供学习和实践。下面,我们将深入探讨这个系统的架构、核心技术和实施要点。...

    管理系统系列--后台管理系统,前后端分离,后端SpringBoot+Shiro+MyBatis+Redis,前端Vu.zip

    综上所述,这个管理系统系列项目通过结合SpringBoot的快速开发能力、Shiro的安全管理、MyBatis的数据持久化、Redis的高速缓存以及Vue.js的前端渲染,构建了一个高效、安全且易于维护的后台管理系统。这不仅展示了...

    安全认证框架-Apache_Shiro研究心得

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常容易地开发出足够安全的应用——无论它们是部署在单一用户开发环境还是多服务器集群环境中。Shiro 的设计目标是...

Global site tag (gtag.js) - Google Analytics