AndroidのAuth Digestを使用してAPIをヒットする必要があります。AndroidサポートAuthDigest? 同じクライアントに最適なクライアントはどれですか。アンドロイド用の改造を伴うAuthDigest
0
A
答えて
0
あなたは自分の換装コールにヘッダーのparamを配置する必要があります:
@POST('route')
Call<Object> route(
@Header("Authorization") String authorization
);
1
私は私の質問の答えを得ました。 ダイジェストは、基本的にセキュアな鍵を生成するためにのみ使用され、認証鍵で改造して使用します。
私はsercureキーを生成し、MD5アルゴリズムを使用しました。
public static String tryDigestAuthentication(String username, String password,String REQUEST_TYPE,String cNounce,String mUri)
{
/*String auth = input.getHeaderField("WWW-Authenticate");
if(auth == null || !auth.startsWith("Digest ")){
return null;
}
final HashMap<String, String> authFields = splitAuthFields(auth.substring(7));*/
MessageDigest md5 = null;
try{
md5 = MessageDigest.getInstance("MD5");
}
catch(NoSuchAlgorithmException e){
return null;
}
Joiner colonJoiner = Joiner.on(':');
String HA1 = null;
String HATemp = null;
try{
md5.reset();
String ha1str = colonJoiner.join(username,
"Private", password);
md5.update(ha1str.getBytes());
byte[] ha1bytes = md5.digest();
HATemp = bytesToHexString(ha1bytes);
Log.e("HATTEMP-->",newByteToHex(ha1bytes));
String haTstr = colonJoiner.join(HATemp, "WpcHS2/TBAA=dffcc0dbd5f96d49a5477166649b7c0ae3866a93",cNounce);
md5.update(haTstr.getBytes("ISO-8859-1"));
byte[] haTbytes = md5.digest();
HA1 = bytesToHexString(haTbytes);
Log.e("HA1-->",newByteToHex(haTbytes));
}
catch(UnsupportedEncodingException e){
return null;
}
String HA2 = null;
try{
md5.reset();
String ha2str = colonJoiner.join(REQUEST_TYPE,mUri);
md5.update(ha2str.getBytes("ISO-8859-1"));
HA2 = bytesToHexString(md5.digest());
Log.e("HAT2-->",newByteToHex(md5.digest()));
}
catch(UnsupportedEncodingException e){
return null;
}
String HA3 = null;
try{
md5.reset();
String ha3str = colonJoiner.join(HA1, "WpcHS2/TBAA=dffcc0dbd5f96d49a5477166649b7c0ae3866a93","00000001" ,
cNounce,"auth",HA2);
md5.update(ha3str.getBytes("ISO-8859-1"));
HA3 = bytesToHexString(md5.digest());
Log.e("HAT3-->",newByteToHex(md5.digest()));
}
catch(UnsupportedEncodingException e){
return null;
}
StringBuilder sb = new StringBuilder(128);
sb.append("Digest ");
sb.append("cnonce" ).append("=\"").append(cNounce).append("\",");
sb.append("uri" ).append("=\"").append(mUri).append("\",");
//sb.append("qop" ).append('=' ).append("auth" ).append(",");
sb.append("response").append("=\"").append(HA3 ).append("\"");
// try{
// final HttpURLConnection result = (HttpURLConnection)input.getURL().openConnection();
// result.addRequestProperty("Authorization", sb.toString());
// return result;
// }
// catch(IOException e){
// return null;
// }
return sb.toString();
}
関連する問題
- 1. アンドロイドは - 改造
- 2. アンドロイドでの改造?
- 3. 改造機とRxのアンドロイドでユニットテスト
- 4. アンドロイド改造ダウンロードの進捗状況
- 5. ボディレスポンスが改造されたアンドロイド
- 6. アンドロイドで改造したダイナミックデータ型を扱う
- 7. 簡単な方法は、アンドロイドで改造を使用する
- 8. 痛みを伴うアンドロイドのスレッディング
- 9. は、私はこのような改造オブジェクトを持つ改造
- 10. 改造したアンドロイドに複数のキーパラメータを追加する
- 11. 曜日と月の改行を伴うJQueryのdatepicker
- 12. アンドロイドで改造を使用してPHPを呼び出す方法は?
- 13. amazon opsworksの改行を伴う環境変数
- 14. 改造の方法を使用して
- 15. ここ改造や改造ライブラリを使用してURLからデータを取得しようと目指して
- 16. RequestBodyはアンドロイド改造では常にnullです
- 17. 改造した2.0のMockitoの使用
- 18. アンドロイドでの通知の問題を伴うアラームの生成
- 19. 改造インターフェイスのデザインパターン
- 20. Androidの改造トラブル
- 21. 私は改造
- 22. は改造2
- 23. は改造2
- 24. カスタム改造コンバータ
- 25. 改造した動的URLを使用
- 26. IMDB APIで改造を使用する
- 27. 音と振動を伴うアンドロイドの警告
- 28. ボディを改造して改造します
- 29. 高速連続領域検索を伴うデータ構造
- 30. 改造 - 解析JSON
私は、ユーザー名=「テスト」、pasword =「」123456、領域= Privatreとdisgest AUTHを抱えている、どのように私は、このユーザ名、パスワード、およびレルムを使用してヘッダーを生成することができます。 また、何らかの応答キーを生成するMD5アルゴリズムが存在する可能性があります。 あなたは同じことについて助けてもらえますか? –
承認キーでヘッダーはダイジェスト認証で自動生成されますが、私の要求を認証しますが動作しません –
資格情報から承認文字列を作成できます:https://en.wikipedia.org/ wiki/Digest_access_authentication – Yoleth