Java 类org.apache.commons.codec.digest.HmacAlgorithms 实例源码
项目:japyter
文件:Protocol.java
private static HmacAlgorithms getHmacAlgorithm(final String signatureScheme)
{
if (isBlank(signatureScheme))
{
return null;
}
final String algo = StringUtils.remove(signatureScheme, '-');
for (final HmacAlgorithms ha : HmacAlgorithms.values())
{
if (equalsIgnoreCase(ha.toString(), algo))
{
return ha;
}
}
throw new IllegalArgumentException("Unsupported signature scheme: " + signatureScheme);
}
项目:japyter
文件:JapyterITCase.java
private static void testSessionFromUri(final URI shellUri,
final byte[] hmacKey,
final HmacAlgorithms hmacAlgorithm) throws IOException
{
LOGGER.info("\n\n*** CONNECT BY URI ***\n");
LOGGER.info("Attempting connection by URI: {}...", shellUri);
try (Japyter japyter = Japyter.fromUri(shellUri, hmacKey, hmacAlgorithm)
.withUserName("it-test2")
.build())
{
Validate.notNull(japyter.getControl());
Validate.notNull(japyter.getHeartbeat());
Validate.notNull(japyter.getIoPub());
Validate.notNull(japyter.getSession());
Validate.notNull(japyter.getShell());
Validate.isTrue(japyter.getStdin() == null);
LOGGER.info("All good! Closing test session now...\n");
}
}
项目:japyter
文件:Japyter.java
/**
* Creates a new {@link Builder} instance for configuring and instantiating a new
* {@link Japyter} instance, which first retrieves all the connection information from a call (
* <code>connect_request</code> request) to the provided control or shell ZeroMQ router.
*
* @param controlOrShell a {@link URI} that points to either a shell or control ZeroMQ router.
* @param hmacKey the request HMAC signing key, or null if request signature is disabled on the
* kernel.
* @param hmacAlgorithm the request HMAC signing algorithm, or null if request signature is
* disabled on the kernel.
* @throws IOException in case anything goes wrong when retrieving the network configuration.
*/
public static Builder fromUri(final URI controlOrShell,
final byte[] hmacKey,
final HmacAlgorithms hmacAlgorithm) throws IOException
{
LOGGER.info("Fetching connection information from: {}",
notNull(controlOrShell, "controlOrShell can't be null"));
final Protocol protocol = new Protocol(hmacKey, hmacAlgorithm);
try (Session tempSession = new Session(Japyter.class.getName(), protocol, 3000, 1))
{
final Shell tempShell = new Shell(controlOrShell.toString(), tempSession);
final ConnectReply connectReply = tempShell.connect();
final Config config = new Config();
config.withControlPort(connectReply.getControl())
.withHbPort(connectReply.getHb())
.withIopubPort(connectReply.getIopub())
.withIp(controlOrShell.getHost())
.withKey(hmacKey != null ? new String(hmacKey, Protocol.ENCODING) : null)
.withShellPort(connectReply.getShell())
.withSignatureScheme(hmacAlgorithm != null ? hmacAlgorithm.toString() : null)
.withStdinPort(connectReply.getStdin())
.withTransport(controlOrShell.getScheme());
LOGGER.info("Connection information received: {}, losing temporary session", connectReply);
return fromConfig(config);
}
}
项目:japyter
文件:Protocol.java
public Protocol(final byte[] hmacKey, final HmacAlgorithms hmacAlgorithm)
{
this.hmacAlgorithm = hmacAlgorithm;
this.hmacKey = ArrayUtils.clone(hmacKey);
if (hmacAlgorithm != null && hmacKey != null)
{
LOGGER.info("HMAC signature enabled with: {}", hmacAlgorithm);
}
else
{
LOGGER.info("HMAC signature is disabled");
}
}
项目:japyter
文件:Protocol.java
public Protocol()
{
this(null, (HmacAlgorithms) null);
}
项目:japyter
文件:Protocol.java
public HmacAlgorithms getHmacAlgorithm()
{
return hmacAlgorithm;
}
项目:alf.io
文件:PaypalManager.java
private static String computeHMAC(CustomerName customerName, String email, String billingAddress, Event event) {
return new HmacUtils(HmacAlgorithms.HMAC_SHA_256, event.getPrivateKey()).hmacHex(StringUtils.trimToEmpty(customerName.getFullName()) + StringUtils.trimToEmpty(email) + StringUtils.trimToEmpty(billingAddress));
}
项目:alf.io
文件:Ticket.java
private static String hmacSHA256Base64(String key, String code) {
return Base64.getEncoder().encodeToString(new HmacUtils(HmacAlgorithms.HMAC_SHA_256, key).hmac(code));
}
项目:plugin-prov-aws
文件:AWS4SignerBase.java
/**
* do a HMac sha256 sign
*
* @param stringData
* data as string
* @param key
* key
* @return signature
*/
protected byte[] sign(final String stringData, final byte[] key) {
return new HmacUtils(HmacAlgorithms.HMAC_SHA_256, key).hmac(stringData);
}