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和Shiro技术的分布式权限管理系统。这个项目旨在提供一个安全、高效且可...
本系统采用三大主流技术——Apache Shiro、SpringMVC和MyBatis,构建了一个高效、灵活的权限管理系统。 **Apache Shiro** Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可...
本系统采用了业界广泛使用的四大核心技术——Spring MVC、MyBatis、Shiro和Dubbo,构建了一个强大的分布式后台管理框架。下面将对这四大技术进行详细阐述,并探讨它们如何协同工作,以实现高效、安全的后台管理。 ...
Apache Shiro是一个强大且易用的Java安全框架,它能够非常容易地开发出足够好的应用——从简单的网站到复杂的企业级应用,都能够轻松应对。Shiro框架可以完成包括认证、授权、加密、会话管理、Web集成等任务,并且...
Apache Shiro是一个强大的安全框架,提供认证、授权、会话管理和加密等功能。在Spring Boot项目中,Shiro可以实现细粒度的权限控制,保护系统资源的安全。 10. **Upload文件上传**: Spring Boot支持文件上传功能...
Apache Shiro 和 Spring Security (SSM) 是两个广泛使用的Java安全框架,它们分别提供认证、授权、会话管理和加密等功能,以确保Web应用程序的安全性。本资料包将深入讲解如何将Shiro与SSM整合,以实现更高效、灵活...
而Apache Shiro则是一个强大且易用的安全框架,专门处理认证、授权、会话管理和加密等问题。当SpringBoot与Shiro相结合,可以构建出高效、稳定的权限管理系统。本文将深入探讨SpringBoot+Shiro的整合,以及如何利用...
Apache Shiro是一款强大的Java安全框架,它为开发者提供了身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)和加密(Cryptography)等核心功能,使得开发人员能够轻松地在应用...
Apache Shiro是一个功能强大且易于使用的Java安全框架,可执行身份验证、授权、加密和会话管理。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能...
Apache Shiro 是一个强大且易用的Java安全框架,可以提供认证、授权、加密和会话管理功能,同时具备良好的扩展性和灵活性。它通过三大核心组件——Subject(主题)、SecurityManager(安全管理器)和Realms(领域)...
总的来说,"SpringMVC精品资源——spring+springmvc+mybatis+shiro整合DEMO"是一个宝贵的参考资料,对于想要深入理解和掌握Java Web开发技术的开发者来说,是不可多得的学习材料。通过深入研究这个DEMO,开发者不仅...
Apache Shiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常容易地开发出足够安全的应用。Shiro的目标是尽可能地减少开发人员在安全代码方面的编写工作量,使开发人员更多地关注...
在这个“apache shiro整合struts2+spring+mybatis简单demo”中,我们将探讨如何将Shiro与三个流行的Java开发框架——Struts2、Spring和MyBatis进行集成,构建一个完整的安全管理体系。 首先,Struts2是一个基于MVC...
在“shiro基础jar包.zip”这个压缩包中,主要包含了一个核心组件——“shiro-core”,它是Shiro框架的基础,包含了处理用户认证、权限控制和会话管理的核心类。 **1. 身份验证(Authentication)** Shiro的核心组件...
* 并发验证(Concurrency):Shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去。 * 测试支持(Testing):提供测试支持。 * 假装身份(Run As):允许一个用户假装为另一个...
在现代企业级应用开发中,Spring Boot、Shiro和MyBatisPlus是极为常见的技术组合,它们各自承担着关键的角色。Spring Boot简化了Spring应用程序的初始搭建以及配置过程,而Shiro则是一个强大的安全管理框架,负责...
"web项目集成shiro demo,这是web项目集成shiro的一个综合案例" 提示我们这是一个示例项目,用于演示如何将Shiro与Web项目相结合。"综合案例"意味着它可能包含了多种Shiro的功能和用法,如用户登录、权限控制、会话...
本项目——“基于SpringBoot+Vue+Shiro的后台权限管理系统”是一个典型的IT毕业设计案例,旨在提供一个完整的、功能完善的后台管理平台,以供学习和实践。下面,我们将深入探讨这个系统的架构、核心技术和实施要点。...
综上所述,这个管理系统系列项目通过结合SpringBoot的快速开发能力、Shiro的安全管理、MyBatis的数据持久化、Redis的高速缓存以及Vue.js的前端渲染,构建了一个高效、安全且易于维护的后台管理系统。这不仅展示了...
Apache Shiro 是一个强大且易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能,可以非常容易地开发出足够安全的应用——无论它们是部署在单一用户开发环境还是多服务器集群环境中。Shiro 的设计目标是...