添加JWT依赖并实现token生成与验证功能 在控制器方法上添加权限注解保护API端点 更新安全配置以集成JWT过滤器 移除无用的编码测试工具类 修改JWT相关配置为更安全的设置
130 lines
4.9 KiB
Properties
130 lines
4.9 KiB
Properties
# 应用服务 WEB 访问端口
|
||
server.port=8080
|
||
spring.application.name=web_project
|
||
|
||
# 数据库配置
|
||
spring.datasource.url=jdbc:mysql://localhost:3306/webproject?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true
|
||
spring.datasource.username=root
|
||
spring.datasource.password=123456
|
||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
||
|
||
# 数据库连接池优化配置
|
||
spring.datasource.hikari.maximum-pool-size=10
|
||
spring.datasource.hikari.minimum-idle=5
|
||
spring.datasource.hikari.idle-timeout=300000
|
||
spring.datasource.hikari.connection-timeout=20000
|
||
spring.datasource.hikari.max-lifetime=1200000
|
||
spring.datasource.hikari.connection-test-query=SELECT 1
|
||
spring.datasource.hikari.pool-name=WebProjectHikariCP
|
||
|
||
# JPA配置 - 生产环境建议将ddl-auto改为none
|
||
spring.jpa.hibernate.ddl-auto=update
|
||
spring.jpa.show-sql=false
|
||
spring.jpa.properties.hibernate.format_sql=true
|
||
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
|
||
spring.jpa.open-in-view=false
|
||
|
||
# JPA性能优化配置
|
||
spring.jpa.properties.hibernate.jdbc.batch_size=30
|
||
spring.jpa.properties.hibernate.order_inserts=true
|
||
spring.jpa.properties.hibernate.order_updates=true
|
||
# 暂时禁用Hibernate二级缓存和查询缓存
|
||
# spring.jpa.properties.hibernate.cache.use_second_level_cache=true
|
||
# spring.jpa.properties.hibernate.cache.use_query_cache=true
|
||
|
||
# 缓存配置
|
||
spring.cache.type=redis
|
||
spring.cache.redis.time-to-live=1800000
|
||
spring.cache.redis.key-prefix=CACHE_
|
||
spring.cache.redis.use-key-prefix=true
|
||
spring.cache.redis.cache-null-values=false
|
||
|
||
# Redis配置
|
||
spring.redis.host=localhost
|
||
spring.redis.port=6379
|
||
spring.redis.password=123456
|
||
spring.redis.database=0
|
||
spring.redis.timeout=10000ms
|
||
# Redis连接池优化配置
|
||
spring.redis.lettuce.pool.max-active=8
|
||
spring.redis.lettuce.pool.max-wait=10000ms
|
||
spring.redis.lettuce.pool.max-idle=8
|
||
spring.redis.lettuce.pool.min-idle=2
|
||
spring.redis.lettuce.shutdown-timeout=100ms
|
||
|
||
# 日志配置
|
||
logging.level.root=INFO
|
||
logging.level.com.qf.myafterprojecy=DEBUG
|
||
logging.level.org.springframework.security=INFO
|
||
logging.level.org.hibernate.SQL=WARN
|
||
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||
# 日志文件配置
|
||
logging.file.name=logs/web_project.log
|
||
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
||
# 确保控制台输出使用UTF-8编码
|
||
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
|
||
# 日志编码配置 - 强制使用UTF-8
|
||
logging.charset.file=UTF-8
|
||
logging.charset.console=UTF-8
|
||
# Actuator配置 - 生产环境建议限制暴露的端点
|
||
management.endpoints.web.exposure.include=health,info,metrics,prometheus
|
||
management.endpoint.health.show-details=when_authorized
|
||
management.metrics.export.prometheus.enabled=true
|
||
|
||
# JWT配置 - 生产环境应使用更安全的密钥和环境变量
|
||
jwt.secret=myAfterProjectSecretKey2024SecureJwtTokenGeneration
|
||
jwt.expiration=86400000
|
||
jwt.header=Authorization
|
||
jwt.token-prefix=Bearer
|
||
|
||
# CORS配置 - 生产环境应限制允许的源
|
||
cors.allowed-origins=http://localhost:3000
|
||
cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
|
||
cors.allowed-headers=*,
|
||
cors.allow-credentials=true
|
||
cors.max-age=3600
|
||
|
||
# 安全配置增强
|
||
security.basic.enabled=false
|
||
security.ignored=/css/**,/js/**,/images/**,/favicon.ico
|
||
|
||
# 生产环境建议配置
|
||
|
||
# 会话配置
|
||
server.servlet.session.timeout=30m
|
||
server.session.tracking-modes=cookie
|
||
|
||
# 国际化配置
|
||
spring.web.locale=zh_CN
|
||
spring.messages.encoding=UTF-8
|
||
# 响应编码配置 - 确保所有响应使用UTF-8编码
|
||
server.servlet.encoding.charset=UTF-8
|
||
server.servlet.encoding.force=true
|
||
server.servlet.encoding.force-request=true
|
||
server.servlet.encoding.force-response=true
|
||
server.servlet.encoding.enabled=true
|
||
|
||
# 配置控制台输出编码 - 通过日志系统配置确保中文显示正常
|
||
# logging.pattern.console=%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40logger{39}}{cyan} %clr{:}{faint} %m%n%wEx
|
||
|
||
# 配置Maven启动JVM参数(需在启动时通过命令行指定或在pom.xml中配置)
|
||
# 实际使用时请在启动命令中添加:-Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8
|
||
|
||
# 更详细的日志配置 - 确保所有日志输出正确编码
|
||
# logging.level.root=INFO
|
||
# logging.level.org.springframework.web=DEBUG
|
||
# logging.level.org.springframework.security=INFO
|
||
# logging.level.com.qf.myafterprojecy=DEBUG
|
||
|
||
# 确保数据库连接编码正确
|
||
spring.datasource.hikari.data-source-properties.useUnicode=true
|
||
spring.datasource.hikari.data-source-properties.serverTimezone=Asia/Shanghai
|
||
spring.datasource.hikari.data-source-properties.characterEncoding=utf-8
|
||
|
||
# 应用性能优化配置
|
||
spring.main.allow-bean-definition-overriding=true
|
||
spring.main.lazy-initialization=false
|
||
|
||
# API 文档配置
|
||
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
|