mirror of
https://github.com/samsonjs/media.git
synced 2026-04-05 11:15:46 +00:00
Fix Basic authentication header
Issue: google/ExoPlayer#9544 The header must include the word "Basic", but the word is missing. #minor-release PiperOrigin-RevId: 443386880
This commit is contained in:
parent
3867f8e005
commit
084dfc04c5
2 changed files with 21 additions and 8 deletions
|
|
@ -45,9 +45,14 @@ import java.security.NoSuchAlgorithmException;
|
|||
/** HTTP digest authentication (RFC2069). */
|
||||
public static final int DIGEST = 2;
|
||||
|
||||
private static final String DIGEST_FORMAT =
|
||||
/** Basic authorization header format, see RFC7617. */
|
||||
private static final String BASIC_AUTHORIZATION_HEADER_FORMAT = "Basic %s";
|
||||
|
||||
/** Digest authorization header format, see RFC7616. */
|
||||
private static final String DIGEST_AUTHORIZATION_HEADER_FORMAT =
|
||||
"Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\"";
|
||||
private static final String DIGEST_FORMAT_WITH_OPAQUE =
|
||||
|
||||
private static final String DIGEST_AUTHORIZATION_HEADER_FORMAT_WITH_OPAQUE =
|
||||
"Digest username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\","
|
||||
+ " opaque=\"%s\"";
|
||||
|
||||
|
|
@ -107,9 +112,11 @@ import java.security.NoSuchAlgorithmException;
|
|||
}
|
||||
|
||||
private String getBasicAuthorizationHeaderValue(RtspAuthUserInfo authUserInfo) {
|
||||
return Base64.encodeToString(
|
||||
RtspMessageUtil.getStringBytes(authUserInfo.username + ":" + authUserInfo.password),
|
||||
Base64.DEFAULT);
|
||||
return Util.formatInvariant(
|
||||
BASIC_AUTHORIZATION_HEADER_FORMAT,
|
||||
Base64.encodeToString(
|
||||
RtspMessageUtil.getStringBytes(authUserInfo.username + ":" + authUserInfo.password),
|
||||
Base64.DEFAULT));
|
||||
}
|
||||
|
||||
private String getDigestAuthorizationHeaderValue(
|
||||
|
|
@ -137,10 +144,16 @@ import java.security.NoSuchAlgorithmException;
|
|||
|
||||
if (opaque.isEmpty()) {
|
||||
return Util.formatInvariant(
|
||||
DIGEST_FORMAT, authUserInfo.username, realm, nonce, uri, response);
|
||||
DIGEST_AUTHORIZATION_HEADER_FORMAT, authUserInfo.username, realm, nonce, uri, response);
|
||||
} else {
|
||||
return Util.formatInvariant(
|
||||
DIGEST_FORMAT_WITH_OPAQUE, authUserInfo.username, realm, nonce, uri, response, opaque);
|
||||
DIGEST_AUTHORIZATION_HEADER_FORMAT_WITH_OPAQUE,
|
||||
authUserInfo.username,
|
||||
realm,
|
||||
nonce,
|
||||
uri,
|
||||
response,
|
||||
opaque);
|
||||
}
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
throw ParserException.createForManifestWithUnsupportedFeature(/* message= */ null, e);
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public class RtspAuthenticationInfoTest {
|
|||
String authenticationRealm = "WallyWorld";
|
||||
String username = "Aladdin";
|
||||
String password = "open sesame";
|
||||
String expectedAuthorizationHeaderValue = "QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n";
|
||||
String expectedAuthorizationHeaderValue = "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n";
|
||||
RtspAuthenticationInfo authenticator =
|
||||
new RtspAuthenticationInfo(
|
||||
RtspAuthenticationInfo.BASIC, authenticationRealm, /* nonce= */ "", /* opaque= */ "");
|
||||
|
|
|
|||
Loading…
Reference in a new issue