Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
pulsar
提交
33d14813
pulsar
项目概览
apache
/
pulsar
通知
129
Star
40
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
pulsar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
33d14813
编写于
10月 08, 2017
作者:
H
hrsakai
提交者:
Matteo Merli
10月 07, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support json format in AuthenticationAthenz's authParams (#793)
上级
c65207eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
3 deletion
+30
-3
pulsar-client-auth-athenz/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationAthenz.java
.../apache/pulsar/client/impl/auth/AuthenticationAthenz.java
+30
-3
未找到文件。
pulsar-client-auth-athenz/src/main/java/org/apache/pulsar/client/impl/auth/AuthenticationAthenz.java
浏览文件 @
33d14813
...
...
@@ -23,6 +23,7 @@ import java.io.IOException;
import
java.net.URI
;
import
java.net.URISyntaxException
;
import
java.util.Base64
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -32,10 +33,15 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
import
org.apache.pulsar.client.api.Authentication
;
import
org.apache.pulsar.client.api.AuthenticationDataProvider
;
import
org.apache.pulsar.client.api.EncodedAuthenticationParameterSupport
;
import
org.apache.pulsar.client.api.PulsarClientException
;
import
org.apache.pulsar.client.api.PulsarClientException.GettingAuthenticationDataException
;
import
org.apache.pulsar.common.util.ObjectMapperFactory
;
import
java.security.PrivateKey
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.google.common.base.Splitter
;
import
com.yahoo.athenz.zts.RoleToken
;
...
...
@@ -44,7 +50,7 @@ import com.yahoo.athenz.auth.ServiceIdentityProvider;
import
com.yahoo.athenz.auth.impl.SimpleServiceIdentityProvider
;
import
com.yahoo.athenz.auth.util.Crypto
;
public
class
AuthenticationAthenz
implements
Authentication
{
public
class
AuthenticationAthenz
implements
Authentication
,
EncodedAuthenticationParameterSupport
{
private
transient
ZTSClient
ztsClient
=
null
;
private
String
tenantDomain
;
...
...
@@ -91,8 +97,29 @@ public class AuthenticationAthenz implements Authentication {
return
(
System
.
nanoTime
()
-
cachedRoleTokenTimestamp
)
<
TimeUnit
.
HOURS
.
toNanos
(
cacheDurationInHour
);
}
@Override
public
void
configure
(
String
encodedAuthParamString
)
{
if
(
isBlank
(
encodedAuthParamString
))
{
throw
new
IllegalArgumentException
(
"authParams must not be empty"
);
}
// Convert JSON to Map
try
{
ObjectMapper
jsonMapper
=
ObjectMapperFactory
.
create
();
Map
<
String
,
String
>
authParamsMap
=
jsonMapper
.
readValue
(
encodedAuthParamString
,
new
TypeReference
<
HashMap
<
String
,
String
>>()
{});
setAuthParams
(
authParamsMap
);
}
catch
(
IOException
e
)
{
throw
new
IllegalArgumentException
(
"Failed to parse authParams"
);
}
}
@Override
public
void
configure
(
Map
<
String
,
String
>
authParams
)
{
setAuthParams
(
authParams
);
}
private
void
setAuthParams
(
Map
<
String
,
String
>
authParams
){
this
.
tenantDomain
=
authParams
.
get
(
"tenantDomain"
);
this
.
tenantService
=
authParams
.
get
(
"tenantService"
);
this
.
providerDomain
=
authParams
.
get
(
"providerDomain"
);
...
...
@@ -124,7 +151,7 @@ public class AuthenticationAthenz implements Authentication {
public
void
close
()
throws
IOException
{
}
ZTSClient
getZtsClient
()
{
private
ZTSClient
getZtsClient
()
{
if
(
ztsClient
==
null
)
{
ServiceIdentityProvider
siaProvider
=
new
SimpleServiceIdentityProvider
(
tenantDomain
,
tenantService
,
privateKey
,
keyId
);
...
...
@@ -133,7 +160,7 @@ public class AuthenticationAthenz implements Authentication {
return
ztsClient
;
}
PrivateKey
loadPrivateKey
(
String
privateKeyURL
)
{
private
PrivateKey
loadPrivateKey
(
String
privateKeyURL
)
{
PrivateKey
privateKey
=
null
;
try
{
URI
uri
=
new
URI
(
privateKeyURL
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录