diff options
author | Santos Cordon <santoscordon@google.com> | 2016-05-23 18:22:37 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-05-23 18:22:37 +0000 |
commit | 3081e5a8b67bcb9cb4fc1dcf75ce1f3faf7d547f (patch) | |
tree | 627773f511a1fee5daf8bb8a74870ad34bae5a22 | |
parent | fa784e32faa9a2a99e87c38ee194c1a54dfcb106 (diff) | |
parent | 226ac3ad92a383436a13da89959178d51a0cec1b (diff) | |
download | voip-3081e5a8b67bcb9cb4fc1dcf75ce1f3faf7d547f.tar.gz |
Hide SIP pii data from logs in SipService.android-cts_7.1_r1android-cts-7.1_r9android-cts-7.1_r8android-cts-7.1_r7android-cts-7.1_r6android-cts-7.1_r5android-cts-7.1_r4android-cts-7.1_r3android-cts-7.1_r29android-cts-7.1_r28android-cts-7.1_r27android-cts-7.1_r26android-cts-7.1_r25android-cts-7.1_r24android-cts-7.1_r23android-cts-7.1_r22android-cts-7.1_r21android-cts-7.1_r20android-cts-7.1_r2android-cts-7.1_r19android-cts-7.1_r18android-cts-7.1_r17android-cts-7.1_r16android-cts-7.1_r15android-cts-7.1_r14android-cts-7.1_r13android-cts-7.1_r12android-cts-7.1_r11android-cts-7.1_r10android-cts-7.1_r1android-7.1.2_r9android-7.1.2_r8android-7.1.2_r6android-7.1.2_r5android-7.1.2_r4android-7.1.2_r39android-7.1.2_r38android-7.1.2_r37android-7.1.2_r36android-7.1.2_r33android-7.1.2_r32android-7.1.2_r30android-7.1.2_r3android-7.1.2_r29android-7.1.2_r28android-7.1.2_r27android-7.1.2_r25android-7.1.2_r24android-7.1.2_r23android-7.1.2_r2android-7.1.2_r19android-7.1.2_r18android-7.1.2_r17android-7.1.2_r16android-7.1.2_r15android-7.1.2_r14android-7.1.2_r13android-7.1.2_r12android-7.1.2_r11android-7.1.2_r10android-7.1.2_r1android-7.1.1_r9android-7.1.1_r8android-7.1.1_r7android-7.1.1_r61android-7.1.1_r60android-7.1.1_r6android-7.1.1_r59android-7.1.1_r58android-7.1.1_r57android-7.1.1_r56android-7.1.1_r55android-7.1.1_r54android-7.1.1_r53android-7.1.1_r52android-7.1.1_r51android-7.1.1_r50android-7.1.1_r49android-7.1.1_r48android-7.1.1_r47android-7.1.1_r46android-7.1.1_r45android-7.1.1_r44android-7.1.1_r43android-7.1.1_r42android-7.1.1_r41android-7.1.1_r40android-7.1.1_r4android-7.1.1_r39android-7.1.1_r38android-7.1.1_r35android-7.1.1_r33android-7.1.1_r32android-7.1.1_r31android-7.1.1_r3android-7.1.1_r28android-7.1.1_r27android-7.1.1_r26android-7.1.1_r25android-7.1.1_r24android-7.1.1_r23android-7.1.1_r22android-7.1.1_r21android-7.1.1_r20android-7.1.1_r2android-7.1.1_r17android-7.1.1_r16android-7.1.1_r15android-7.1.1_r14android-7.1.1_r13android-7.1.1_r12android-7.1.1_r11android-7.1.1_r10android-7.1.1_r1android-7.1.0_r7android-7.1.0_r6android-7.1.0_r5android-7.1.0_r4android-7.1.0_r3android-7.1.0_r2android-7.1.0_r1nougat-mr2.3-releasenougat-mr2.2-releasenougat-mr2.1-releasenougat-mr2-security-releasenougat-mr2-releasenougat-mr2-pixel-releasenougat-mr2-devnougat-mr1.8-releasenougat-mr1.7-releasenougat-mr1.6-releasenougat-mr1.5-releasenougat-mr1.4-releasenougat-mr1.3-releasenougat-mr1.2-releasenougat-mr1.1-releasenougat-mr1-volantis-releasenougat-mr1-security-releasenougat-mr1-releasenougat-mr1-flounder-releasenougat-mr1-devnougat-mr1-cts-releasenougat-dr1-release
am: 226ac3ad92
* commit '226ac3ad92a383436a13da89959178d51a0cec1b':
Hide SIP pii data from logs in SipService.
Change-Id: Ia1df99c99c7c13138aed44a11e5b907d4601b9cf
-rw-r--r-- | src/java/com/android/server/sip/SipService.java | 51 | ||||
-rw-r--r-- | src/java/com/android/server/sip/SipSessionGroup.java | 2 |
2 files changed, 46 insertions, 7 deletions
diff --git a/src/java/com/android/server/sip/SipService.java b/src/java/com/android/server/sip/SipService.java index 97abfb7..d14a8d6 100644 --- a/src/java/com/android/server/sip/SipService.java +++ b/src/java/com/android/server/sip/SipService.java @@ -54,6 +54,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Executor; + import javax.sip.SipException; /** @@ -169,7 +170,7 @@ public final class SipService extends ISipService.Stub { + "the profile is not opened"); return; } - if (DBG) log("open3: " + localProfile.getUriString() + ": " + if (DBG) log("open3: " + obfuscateSipUri(localProfile.getUriString()) + ": " + incomingCallPendingIntent + ": " + listener); try { SipSessionGroupExt group = createGroup(localProfile, @@ -528,13 +529,13 @@ public final class SipService extends ISipService.Stub { mIncomingCallPendingIntent = pIntent; } - public void openToReceiveCalls() throws SipException { + public void openToReceiveCalls() { mOpenedToReceiveCalls = true; if (mNetworkType != -1) { mSipGroup.openToReceiveCalls(this); mAutoRegistration.start(mSipGroup); } - if (SSGE_DBG) log("openToReceiveCalls: " + getUri() + ": " + if (SSGE_DBG) log("openToReceiveCalls: " + obfuscateSipUri(getUri()) + ": " + mIncomingCallPendingIntent); } @@ -542,7 +543,7 @@ public final class SipService extends ISipService.Stub { throws SipException { if (SSGE_DBG) { log("onConnectivityChanged: connected=" + connected + " uri=" - + getUri() + ": " + mIncomingCallPendingIntent); + + obfuscateSipUri(getUri()) + ": " + mIncomingCallPendingIntent); } mSipGroup.onConnectivityChanged(); if (connected) { @@ -558,7 +559,8 @@ public final class SipService extends ISipService.Stub { mOpenedToReceiveCalls = false; mSipGroup.close(); mAutoRegistration.stop(); - if (SSGE_DBG) log("close: " + getUri() + ": " + mIncomingCallPendingIntent); + if (SSGE_DBG) log("close: " + obfuscateSipUri(getUri()) + ": " + + mIncomingCallPendingIntent); } public ISipSession createSession(ISipSessionListener listener) { @@ -826,7 +828,8 @@ public final class SipService extends ISipService.Stub { // in registration to avoid adding duplicate entries to server mMyWakeLock.acquire(mSession); mSession.unregister(); - SAR_TAG = "SipAutoReg:" + mSession.getLocalProfile().getUriString(); + SAR_TAG = "SipAutoReg:" + + obfuscateSipUri(mSession.getLocalProfile().getUriString()); if (SAR_DBG) log("start: group=" + group); } } @@ -1283,4 +1286,40 @@ public final class SipService extends ISipService.Stub { private void loge(String s, Throwable e) { Rlog.e(TAG, s, e); } + + public static String obfuscateSipUri(String sipUri) { + StringBuilder sb = new StringBuilder(); + int start = 0; + sipUri = sipUri.trim(); + if (sipUri.startsWith("sip:")) { + start = 4; + sb.append("sip:"); + } + + char prevC = '\0'; + int len = sipUri.length(); + for (int i = start; i < len; i++) { + char c = sipUri.charAt(i); + char nextC = (i + 1 < len) ? sipUri.charAt(i + 1) : '\0'; + char charToAppend = '*'; + + // This logic allows the first and last letter before an '@' sign to show up without + // obfuscation as well as the first and last letter an '@' sign. + // e.g.: brad@comment.it => b**d@c******.*t + if ((i - start < 1) || + (i + 1 == len) || + isAllowedCharacter(c) || + (prevC == '@') || + (nextC == '@')) { + charToAppend = c; + } + sb.append(charToAppend); + prevC = c; + } + return sb.toString(); + } + + private static boolean isAllowedCharacter(char c) { + return c == '@' || c == '.'; + } } diff --git a/src/java/com/android/server/sip/SipSessionGroup.java b/src/java/com/android/server/sip/SipSessionGroup.java index e820f35..9510b9a 100644 --- a/src/java/com/android/server/sip/SipSessionGroup.java +++ b/src/java/com/android/server/sip/SipSessionGroup.java @@ -237,7 +237,7 @@ class SipSessionGroup implements SipListener { } public synchronized void close() { - if (DBG) log("close: " + mLocalProfile.getUriString()); + if (DBG) log("close: " + SipService.obfuscateSipUri(mLocalProfile.getUriString())); onConnectivityChanged(); mSessionMap.clear(); closeToNotReceiveCalls(); |