我有一个Websphere Liberty服务器,其中包含以下server.xml
<managedThreadFactory jndiName="concurrent/threadFactory" maxPriority="5" />
<openidConnectClient id="AppID"
inboundPropagation="required"
clientId="${APPID_CLIENT_ID}"
clientSecret="${APPID_CLIENT_SECRET}"
authorizationEndpointUrl="https://${APPID_HOST}/oauth/v4/${APPID_TENANT_ID}/authorization"
tokenEndpointUrl="https://${APPID_HOST}/oauth/v4/${APPID_TENANT_ID}/token"
jwkEndpointUrl="https://${APPID_HOST}/oauth/v4/${APPID_TENANT_ID}/publickeys"
issuerIdentifier="https://${APPID_HOST}/oauth/v4/${APPID_TENANT_ID}"
tokenEndpointAuthMethod="basic"
signatureAlgorithm="none"
trustAliasName="${APPID_HOST}"
trustStoreRef="appidtruststore"
audiences="${APPID_CLIENT_ID}" />可以从Java应用程序代码中以编程方式读取clientSecret="${APPID_CLIENT_SECRET}"的解密值吗?
发布于 2019-10-03 22:06:16
这取决于值是如何编码的。如果它是加密的,根据定义,就没有办法轻松地解密它(否则它将违背加密的目的)。
如果你只是做一个可逆的编码(例如XOR或AES),你可以使用Liberty功能来解密它。
首先,确保您在server.xml中启用了以下功能:
<feature>passwordUtilities-1.0</feature>然后,您可以使用com.ibm.websphere.crypto.PasswordUtil接口来解码它的值,如下所示:
String rawValue = // get from System properties or env var
String decodedValue = PasswordUtil.decode(rawValue);https://stackoverflow.com/questions/58219079
复制相似问题