作者 朱兆平

change: 配置文件更改为生产环境和开发环境

update: 用户状态判定增加用户锁定和用户禁用状态判定.
bugfix:
1 增加用户登录成功后返回用户的禁用状态和锁定状态,
2 数据MAPPER增加对应字段的查询
#上传文件的路径,要带斜杠
web:
upload-path: upload/
server:
port: 8066
servlet:
context-path: ${SERVER_CONTEXTPATH:}
spring:
devtools:
add-properties: false
profiles:
active: dev
mvc:
#静态资源,设置上传文件的访问,
static-path-pattern: /**
zipkin:
base-url: http://192.168.1.63:9411
sleuth:
sampler:
probability: 0.1
resources:
static-locations: classpath:/META-INF/resources/,classpath:/static,classpath:/resources/,file:${web.upload-path}
application:
name: cloud-user-center
redis:
# host: 127.0.0.1
host: 192.168.1.53
port: 6379
jackson:
serialization:
FAIL_ON_EMPTY_BEANS: false
#springboot2.0之后会把Date类型字段自动给转成UTC字符串 如:1990-11-26T16:00:00.000+0000,如果想转成时间戳在application.properties配置文件增加以下配置
date-format: yyyy-MM-dd HH:mm:ss
#时区必须要设置
time-zone: GMT+8
#ALWAYS的意思是即时属性为null,仍然也会输出这个key
default-property-inclusion: always
cloud:
#eureka主机名,会在控制页面中显示
#DEV环境关闭注册。
features:
enabled: true
discovery:
enabled: true
service-registry:
auto-registration:
enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#oracle
#driver-class-name=oracle.jdbc.OracleDriver
#url=jdbc:oracle:thin:@10.50.3.68:1521:CGODW
#username=CGOETL
#password=1q2w3e4r
#spring datasource mysql,注意编码配置,缺少数据库编码配置容易引起中文入库乱码
url: jdbc:mysql://118.31.66.166:3306/cloud_user_center?useUnicode=true&characterEncoding=utf8
username: 110
password: QAHqCJf2kFYCLirM
driver-class-name: com.mysql.cj.jdbc.Driver
#配置初始化大小/最小/最大
druid:
initial-size: 1
min-idle: 1
max-active: 20
#获取连接等待超时时间
max-wait: 60000
#一个连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
#间隔多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-runs-millis: 60000
#mysql
validation-query: SELECT 1 FROM DUAL
#oracle
#druid.validation-query:SELECT 'x' FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
default-auto-commit: true
# tomcat:
# max-wait: 10
# max-idle: 10000
# min-idle: 5
# initial-size: 5
eureka:
instance:
#eureka服务器页面中status的请求路径
# status-page-url: http://${eureka.instance.hostname}:${server.port}/index
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
hostname: ${spring.cloud.client.ip-address}
lease-renewal-interval-in-seconds: 15
lease-expiration-duration-in-seconds: 45
health-check-url-path: /actuator/health
metadata-map:
user:
name: "admin" #These two are needed so that the server
password: "123456"
client:
#eureka注册中心服务器地址
service-url:
# defaultZone: http://127.0.0.1:12345/eureka/
defaultZone: http://192.168.1.53:12345/eureka/
registry-fetch-interval-seconds: 30
management:
endpoints:
enabled-by-default: true
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
shutdown:
enabled: true
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.tianbo.warehouse.model
pagehelper:
#auto-dialect: true
#auto-runtime-dialect: true
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
#debug配置,debug或者为true的时候,logback才会记录和写入日志文件
trace: false
debug: false
logging:
file:
path: ./logs/
name: system.log
config: config/logback-dev.xml
#转移到logback配置文件中
#level:
#org.apache.tomcat: info
#com.tianbo.warehouse.dao: DEBUG
#org.springframework.security: trace
#日志配置,输出到文本,
#Java Web Token 时效时间,单位秒
jwt:
max-alive: 30000
info:
version: 2.0
description: "统一用户认证中心服务,具备用户认证,接口鉴权|数据鉴权功能."
... ...
... ... @@ -10,7 +10,7 @@ spring:
devtools:
add-properties: false
profiles:
active: dev
active: prd
mvc:
#静态资源,设置上传文件的访问,
static-path-pattern: /**
... ...
... ... @@ -176,15 +176,15 @@
<logger name="org.apache.tomcat" level="info" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="INFO_FILE" />
<appender-ref ref="WARN_FILE" />
<appender-ref ref="ERROR_FILE" />
<!-- <appender-ref ref="DEBUG_FILE" />-->
<!-- <appender-ref ref="INFO_FILE" />-->
<!-- <appender-ref ref="WARN_FILE" />-->
<!-- <appender-ref ref="ERROR_FILE" />-->
</root>
</springProfile>
<!--生产环境:输出到文件-->
<springProfile name="pro">
<springProfile name="prd">
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
... ...
... ... @@ -75,7 +75,7 @@ public class AnonymousController {
String verifyToken = "";
try {
verifyToken = UUID.randomUUID().toString();
redisUtils.set(Token.VERIFY_TOKEN_KEY + verifyToken,String.valueOf(sum),1200);
redisUtils.set(Token.VERIFY_TOKEN_KEY + verifyToken,String.valueOf(sum),120);
ImageIO.write(bi, "jpeg", outputStream);
map.put("verifyImg","data:image/jpeg;base64,"+encoder.encode(outputStream.toByteArray()));
} catch (IOException e) {
... ...
... ... @@ -61,7 +61,7 @@ public class HeartBeatController {
* key样式
* accessToken:token
*/
if (token!=null && !token.isEmpty() && token.startsWith(Token.VERIFY_TOKEN_TYPE)){
if (StringUtils.isNotEmpty(token) && token.startsWith(Token.VERIFY_TOKEN_TYPE)){
token = token.substring(Token.VERIFY_TOKEN_TYPE.length());
String accessToken = token;
String userDetailStr = redisUtils.get(accessToken);
... ...
... ... @@ -271,11 +271,16 @@ public class USERS implements UserDetails {
/**
*
* @return 账户未锁定
* 用户状态为0时,为锁定状态
*/
@Override
public boolean isAccountNonLocked(){
if (state){
if (this.userStatus != null){
if(this.userStatus == 0){
return false;
}else {
return true;
}
}else {
return false;
}
... ...
... ... @@ -72,6 +72,8 @@ public class MyAuthenticationSuccessHandler extends SavedRequestAwareAuthenticat
loginedUser.setCompanyId(user.getCompanyId());
loginedUser.setCompanyName(user.getCompanyName());
loginedUser.setCompanyInfo(user.getCompanyInfo());
loginedUser.setUserStatus(user.getUserStatus());
loginedUser.setState(user.getState());
//设置用户的TOKEN的有效时间,时间配置在配置文件中设置
... ...
... ... @@ -57,7 +57,7 @@ public class SM3EncryptUtil {
public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
try {
String pwdDigest = passwordSm3("vmvnv1v2VV");
String pwdDigest = passwordSm3("vmvnv1v2");
System.out.println(pwdDigest);
} catch (Exception e) {
e.printStackTrace();
... ...
... ... @@ -129,7 +129,7 @@
<select id="selectByUsernameWithRoleAndPerm" resultMap="WithRoleAndPermResultMap" parameterType="java.lang.String" >
select
u.user_id, username, password, birthday, sex, address, state, mobilePhone, creatTime,
updateTime, userFace, realName, email, age,company_id,
updateTime, userFace, realName, email, age,company_id,user_status,
r.role_id, role_name, role_sign, r.description as rdescription, `type`, parentId, rsort, customs_reg_code,
business_license, departmentId, mq_code,
... ...