登录提交信息加密,新增Base64的支持

This commit is contained in:
thinkgem
2020-03-12 22:06:57 +08:00
parent aeb98bec83
commit effa1ef257
5 changed files with 61 additions and 47 deletions

View File

@@ -25,6 +25,9 @@ public class DesUtils {
if (StringUtils.isBlank(data)){ if (StringUtils.isBlank(data)){
return ""; return "";
} }
if ("Base64".equals(secretKey)) {
return EncodeUtils.encodeBase64(data);
}
String[] ks = StringUtils.split(secretKey, ","); String[] ks = StringUtils.split(secretKey, ",");
if (ks.length >= 3){ if (ks.length >= 3){
return desCore.strEnc(data, ks[0], ks[1], ks[2]); return desCore.strEnc(data, ks[0], ks[1], ks[2]);
@@ -39,6 +42,9 @@ public class DesUtils {
if (StringUtils.isBlank(data)){ if (StringUtils.isBlank(data)){
return ""; return "";
} }
if ("Base64".equals(secretKey)) {
return EncodeUtils.decodeBase64String(data);
}
String[] ks = StringUtils.split(secretKey, ","); String[] ks = StringUtils.split(secretKey, ",");
if (ks.length >= 3){ if (ks.length >= 3){
return desCore.strDec(data, ks[0], ks[1], ks[2]); return desCore.strDec(data, ks[0], ks[1], ks[2]);

View File

@@ -18,6 +18,9 @@
*/ */
this.DesUtils.encode = function(data, secretKey){ this.DesUtils.encode = function(data, secretKey){
if (data && secretKey){ if (data && secretKey){
if (secretKey === 'Base64'){
return Base64.encode(data);
}
var ks = secretKey.split(','); var ks = secretKey.split(',');
if (ks.length >= 3){ if (ks.length >= 3){
return strEnc(data, ks[0], ks[1], ks[2]); return strEnc(data, ks[0], ks[1], ks[2]);
@@ -32,6 +35,9 @@
*/ */
this.DesUtils.decode = function(data, secretKey){ this.DesUtils.decode = function(data, secretKey){
if (data && secretKey){ if (data && secretKey){
if (secretKey === 'Base64'){
return Base64.decode(data);
}
var ks = secretKey.split(','); var ks = secretKey.split(',');
if (ks.length >= 3){ if (ks.length >= 3){
return strDec(data, ks[0], ks[1], ks[2]); return strDec(data, ks[0], ks[1], ks[2]);

View File

@@ -325,8 +325,9 @@ shiro:
# 登录提交信息加密(如果不需要加密,设置为空即可) # 登录提交信息加密(如果不需要加密,设置为空即可)
loginSubmit: loginSubmit:
# 登录提交信息安全Key加密用户名、密码、验证码后再提交key设置为3个用逗号分隔默认加密方式DES # 登录提交信息安全Key加密用户名、密码、验证码后再提交key设置为3个用逗号分隔默认加密方式DES、Base64
secretKey: thinkgem,jeesite,com # secretKey: thinkgem,jeesite,com
secretKey: Base64
# 记住我密钥设置,为空则自动生成一个新密钥,也可以通过 com.jeesite.test.RememberMeKeyGen 生成 # 记住我密钥设置,为空则自动生成一个新密钥,也可以通过 com.jeesite.test.RememberMeKeyGen 生成
rememberMe: rememberMe:

View File

@@ -76,11 +76,11 @@
</div> </div>
<div class="login-copyright"> <div class="login-copyright">
&copy; ${@DateUtils.getYear()} ${@Global.getConfig('productName')} - Powered By <a &copy; ${@DateUtils.getYear()} ${@Global.getConfig('productName')} - Powered By <a
href="http://jeesite.com">JeeSite ${@Global.getProperty('jeesiteVersion')}</a> id="loginKey" data-key="${@Global.getConfig('shiro.loginSubmit.secretKey')}"
href="http://jeesite.com" >JeeSite ${@Global.getProperty('jeesiteVersion')}</a>
</div> </div>
</div> </div>
<% } %> <% } %>
<script>var secretKey = '${@Global.getConfig("shiro.loginSubmit.secretKey")}';</script>
<script src="${ctxStatic}/jquery-toastr/2.1/toastr.min.js?${_version}"></script>
<script src="${ctxStatic}/common/des.js?${_version}"></script> <script src="${ctxStatic}/common/des.js?${_version}"></script>
<script src="${ctxStatic}/jquery-toastr/2.1/toastr.min.js?${_version}"></script>
<script src="${ctxStatic}/modules/sys/sysLogin.js?${_version}"></script> <script src="${ctxStatic}/modules/sys/sysLogin.js?${_version}"></script>

View File

@@ -20,7 +20,7 @@ demoMode: false
server: server:
port: 8980 port: 8981
servlet: servlet:
context-path: /js context-path: /js
tomcat: tomcat:
@@ -39,7 +39,7 @@ jdbc:
# Mysql 数据库配置 # Mysql 数据库配置
type: mysql type: mysql
driver: com.mysql.cj.jdbc.Driver driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC url: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=UTC
username: root username: root
password: 123456 password: 123456
testSql: SELECT 1 testSql: SELECT 1
@@ -130,9 +130,9 @@ jdbc:
# minIdle: 3 # minIdle: 3
# maxActive: 20 # maxActive: 20
# # JTA 分布式事务建议启用多数据源的时候开启v4.0.4+ # JTA 分布式事务建议启用多数据源的时候开启v4.0.4+
# jta: jta:
# enabled: false enabled: true
# 注意:如果报 oracle.jdbc.xa.OracleXAResource.recover 错误,则需要授权如下: # 注意:如果报 oracle.jdbc.xa.OracleXAResource.recover 错误,则需要授权如下:
# grant select on sys.dba_pending_transactions to jeesite; # grant select on sys.dba_pending_transactions to jeesite;
@@ -164,27 +164,27 @@ spring:
main: main:
bannerMode: "off" bannerMode: "off"
# # Redis 连接参数 RedisProperties # Redis 连接参数 RedisProperties
# redis: redis:
# host: 127.0.0.1 host: 127.0.0.1
# port: 6379 port: 6379
# ssl: false ssl: false
# database: 0 database: 0
# password: 1234 password: 1234
# timeout: 2000 timeout: 2000
# lettuce: lettuce:
# pool: pool:
# # 最大空闲连接数 # 最大空闲连接数
# maxIdle: 3 maxIdle: 3
# # 最大活动连接数 # 最大活动连接数
# maxActive: 20 maxActive: 20
# # 缓存配置 # 缓存配置
# cache: cache:
# # 缓存及会话共享(专业版) # 缓存及会话共享(专业版)
# isClusterMode: false isClusterMode: true
# # 清理全部缓存按钮所清理的缓存列表 # 清理全部缓存按钮所清理的缓存列表
# clearNames: sysCache,corpCache,userCache,cmsCache,msgPcPoolCache clearNames: sysCache,corpCache,userCache,cmsCache,msgPcPoolCache
# 日志配置 # 日志配置
logging: logging:
@@ -207,8 +207,8 @@ logging:
# pageSize: 20 # pageSize: 20
# 用户相关 # 用户相关
#user: user:
#
# # 指定超级管理员编号(研发团队使用的账号) # # 指定超级管理员编号(研发团队使用的账号)
# superAdminCode: system # superAdminCode: system
# #
@@ -264,28 +264,28 @@ logging:
# #
# # 管理功能的控制权限类型1拥有的权限 2管理的权限v4.1.5+ # # 管理功能的控制权限类型1拥有的权限 2管理的权限v4.1.5+
# adminCtrlPermi: 2 # adminCtrlPermi: 2
#
# # 多租户模式SAAS模式专业版 # 多租户模式SAAS模式专业版
# useCorpModel: false useCorpModel: true
# 菜单管理 # 菜单管理
#menu: #menu:
# # 根据模块状态去更新相连的菜单状态仅作为微服务时设为false # # 根据模块状态去更新相连的菜单状态
# updateStatusByModuleStatus: true # updateStatusByModuleStatus: false
# 国际化管理(专业版) # 国际化管理(专业版)
#lang: lang:
# enabled: false enabled: true
#
# # 默认语言4.1.3+ # # 默认语言4.1.3+
# defaultLocale: zh_CN # defaultLocale: zh_CN
# # 默认时区4.1.3+ # # 默认时区4.1.3+
# defaultTimeZone: GMT+08:00 # defaultTimeZone: GMT+08:00
# 任务调度(个人版) # 任务调度(个人版)
#job: job:
# enabled: false enabled: true
#
# # 是否自动启动任务调度(可关闭) # # 是否自动启动任务调度(可关闭)
# autoStartup: true # autoStartup: true
# #
@@ -364,8 +364,9 @@ shiro:
# #
# # 登录提交信息加密(如果不需要加密,设置为空即可) # # 登录提交信息加密(如果不需要加密,设置为空即可)
# loginSubmit: # loginSubmit:
# # 登录提交信息安全Key加密用户名、密码、验证码后再提交key设置为3个用逗号分隔 # # 登录提交信息安全Key加密用户名、密码、验证码后再提交key设置为3个用逗号分隔默认加密方式DES、Base64
# secretKey: thinkgem,jeesite,com # secretKey: thinkgem,jeesite,com
# secretKey: Base64
# 记住我密钥设置,为空则自动生成一个新密钥,也可以通过 com.jeesite.test.RememberMeKeyGen 生成 # 记住我密钥设置,为空则自动生成一个新密钥,也可以通过 com.jeesite.test.RememberMeKeyGen 生成
rememberMe: rememberMe:
@@ -578,9 +579,9 @@ shiro:
#======================================# #======================================#
# 消息提醒中心(专业版) # 消息提醒中心(专业版)
#msg: msg:
# enabled: false enabled: true
#
# # 是否开启实时发送消息(保存消息后立即检查未读消息并发送),分布式部署下请单独配置消息发送服务,不建议开启此选项。 # # 是否开启实时发送消息(保存消息后立即检查未读消息并发送),分布式部署下请单独配置消息发送服务,不建议开启此选项。
# realtime: # realtime:
# # 是否开启 # # 是否开启