Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
cdb7fd9e
mica-mqtt
项目概览
mica
/
mica-mqtt
通知
71
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
mica-mqtt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
cdb7fd9e
编写于
3月 02, 2023
作者:
浅梦2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
ssl 支持双向认证
上级
3da39eac
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
74 addition
and
12 deletion
+74
-12
example/mica-mqtt-client-spring-boot-example/src/main/resources/application-client.yml
...ng-boot-example/src/main/resources/application-client.yml
+6
-1
example/mica-mqtt-server-spring-boot-example/src/main/resources/application-server.yml
...ng-boot-example/src/main/resources/application-server.yml
+7
-0
mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
...a/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
+18
-6
starter/mica-mqtt-client-spring-boot-starter/README.md
starter/mica-mqtt-client-spring-boot-starter/README.md
+6
-1
starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/config/MqttClientConfiguration.java
...ot/mqtt/spring/client/config/MqttClientConfiguration.java
+3
-2
starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/config/MqttClientProperties.java
...u/iot/mqtt/spring/client/config/MqttClientProperties.java
+27
-2
starter/mica-mqtt-server-spring-boot-starter/README.md
starter/mica-mqtt-server-spring-boot-starter/README.md
+7
-0
未找到文件。
example/mica-mqtt-client-spring-boot-example/src/main/resources/application-client.yml
浏览文件 @
cdb7fd9e
...
...
@@ -18,5 +18,10 @@ mqtt:
buffer-allocator
:
heap
# 堆内存和堆外内存,默认:堆内存
keep-alive-secs
:
60
# keep-alive 时间,单位:秒
clean-session
:
true
# mqtt clean session,默认:true
use-ssl
:
false
# 是否启用 ssl,默认:false
ssl
:
enabled
:
false
# 是否开启 ssl 认证,2.1.0 开始支持双向认证
keystore-path
:
# 可选参数:ssl 双向认证 keystore 目录,支持 classpath:/ 路径。
keystore-pass
:
# 可选参数:ssl 双向认证 keystore 密码
truststore-path
:
# 可选参数:ssl 双向认证 truststore 目录,支持 classpath:/ 路径。
truststore-pass
:
# 可选参数:ssl 双向认证 truststore 密码
topic1
:
/test2/#
example/mica-mqtt-server-spring-boot-example/src/main/resources/application-server.yml
浏览文件 @
cdb7fd9e
...
...
@@ -23,3 +23,10 @@ mqtt:
enable
:
false
# 是否开启 http basic auth,默认: false
username
:
mica
# http basic auth 用户名
password
:
mica
# http basic auth 密码
ssl
:
# mqtt tcp ssl 认证
enabled
:
false
# 是否开启 ssl 认证,2.1.0 开始支持双向认证
keystore-path
:
# 必须参数:ssl keystore 目录,支持 classpath:/ 路径。
keystore-pass
:
# 必选参数:ssl keystore 密码
truststore-path
:
# 可选参数:ssl 双向认证 truststore 目录,支持 classpath:/ 路径。
truststore-pass
:
# 可选参数:ssl 双向认证 truststore 密码
client-auth
:
none
# 是否需要客户端认证(双向认证),默认:NONE(不需要)
mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
浏览文件 @
cdb7fd9e
...
...
@@ -33,6 +33,7 @@ import org.tio.utils.thread.pool.SynThreadPoolExecutor;
import
org.tio.utils.timer.DefaultTimerTaskService
;
import
org.tio.utils.timer.TimerTaskService
;
import
java.io.InputStream
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.function.Consumer
;
...
...
@@ -344,12 +345,23 @@ public final class MqttClientCreator {
}
public
MqttClientCreator
useSsl
()
{
try
{
this
.
sslConfig
=
SslConfig
.
forClient
();
}
catch
(
Exception
e
)
{
throw
new
IllegalArgumentException
(
e
);
}
return
this
;
return
sslConfig
(
SslConfig
.
forClient
());
}
public
MqttClientCreator
useSsl
(
String
trustStoreFile
,
String
trustPassword
)
{
return
sslConfig
(
SslConfig
.
forClient
(
trustStoreFile
,
trustPassword
));
}
public
MqttClientCreator
useSsl
(
String
keyStoreFile
,
String
keyPasswd
,
String
trustStoreFile
,
String
trustPassword
)
{
return
sslConfig
(
SslConfig
.
forClient
(
keyStoreFile
,
keyPasswd
,
trustStoreFile
,
trustPassword
));
}
public
MqttClientCreator
useSsl
(
InputStream
trustStoreInputStream
,
String
trustPassword
)
{
return
sslConfig
(
SslConfig
.
forClient
(
trustStoreInputStream
,
trustPassword
));
}
public
MqttClientCreator
useSsl
(
InputStream
keyStoreInputStream
,
String
keyPasswd
,
InputStream
trustStoreInputStream
,
String
trustPassword
)
{
return
sslConfig
(
SslConfig
.
forClient
(
keyStoreInputStream
,
keyPasswd
,
trustStoreInputStream
,
trustPassword
));
}
public
MqttClientCreator
sslConfig
(
SslConfig
sslConfig
)
{
...
...
starter/mica-mqtt-client-spring-boot-starter/README.md
浏览文件 @
cdb7fd9e
...
...
@@ -38,7 +38,12 @@ mqtt:
buffer-allocator
:
heap
# 堆内存和堆外内存,默认:堆内存
keep-alive-secs
:
60
# keep-alive 时间,单位:秒
clean-session
:
true
# mqtt clean session,默认:true
use-ssl
:
false
# 是否启用 ssl,默认:false
ssl
:
enabled
:
false
# 是否开启 ssl 认证,2.1.0 开始支持双向认证
keystore-path
:
# 可选参数:ssl 双向认证 keystore 目录,支持 classpath:/ 路径。
keystore-pass
:
# 可选参数:ssl 双向认证 keystore 密码
truststore-path
:
# 可选参数:ssl 双向认证 truststore 目录,支持 classpath:/ 路径。
truststore-pass
:
# 可选参数:ssl 双向认证 truststore 密码
```
### 2.2 可实现接口(注册成 Spring Bean 即可)
...
...
starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/config/MqttClientConfiguration.java
浏览文件 @
cdb7fd9e
...
...
@@ -88,8 +88,9 @@ public class MqttClientConfiguration {
clientCreator
.
debug
();
}
// 开启 ssl
if
(
properties
.
isUseSsl
())
{
clientCreator
.
useSsl
();
MqttClientProperties
.
Ssl
ssl
=
properties
.
getSsl
();
if
(
ssl
.
isEnabled
())
{
clientCreator
.
useSsl
(
ssl
.
getKeystorePath
(),
ssl
.
getKeystorePass
(),
ssl
.
getTruststorePath
(),
ssl
.
getKeystorePass
());
}
// 构造遗嘱消息
MqttClientProperties
.
WillMessage
willMessage
=
properties
.
getWillMessage
();
...
...
starter/mica-mqtt-client-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/config/MqttClientProperties.java
浏览文件 @
cdb7fd9e
...
...
@@ -132,9 +132,9 @@ public class MqttClientProperties {
*/
private
boolean
debug
=
false
;
/**
*
开启 ssl
*
ssl 配置
*/
private
boolean
useSsl
=
false
;
private
Ssl
ssl
=
new
Ssl
()
;
@Getter
@Setter
...
...
@@ -157,4 +157,29 @@ public class MqttClientProperties {
private
boolean
retain
=
false
;
}
@Getter
@Setter
public
static
class
Ssl
{
/**
* 启用 ssl
*/
private
boolean
enabled
=
false
;
/**
* keystore 证书路径
*/
private
String
keystorePath
;
/**
* keystore 密码
*/
private
String
keystorePass
;
/**
* truststore 证书路径
*/
private
String
truststorePath
;
/**
* truststore 密码
*/
private
String
truststorePass
;
}
}
starter/mica-mqtt-server-spring-boot-starter/README.md
浏览文件 @
cdb7fd9e
...
...
@@ -44,6 +44,13 @@ mqtt:
enable
:
false
# 是否开启 http basic auth,默认: false
username
:
mica
# http basic auth 用户名
password
:
mica
# http basic auth 密码
ssl
:
# mqtt tcp ssl 认证
enabled
:
false
# 是否开启 ssl 认证,2.1.0 开始支持双向认证
keystore-path
:
# 必须参数:ssl keystore 目录,支持 classpath:/ 路径。
keystore-pass
:
# 必选参数:ssl keystore 密码
truststore-path
:
# 可选参数:ssl 双向认证 truststore 目录,支持 classpath:/ 路径。
truststore-pass
:
# 可选参数:ssl 双向认证 truststore 密码
client-auth
:
none
# 是否需要客户端认证(双向认证),默认:NONE(不需要)
```
### 2.2 可实现接口(注册成 Spring Bean 即可)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录