Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. /**
  2. * Implements whitelisting on host name
  3. */
  4. public class SaferWebViewClient extends WebViewClient {
  5.  
  6. private String[] hostsWhitelist;
  7.  
  8. public SaferWebViewClient(String hostsWhitelsit){
  9. super();
  10. this.hostsWhitelist = hostsWhitelist;
  11. }
  12.  
  13. @Override
  14. public WebResourceResponse shouldInterceptRequest(final WebView view, String url) {
  15. if (isValidHost(url)) {
  16. return super.shouldInterceptRequest(view, url);
  17. } else {
  18. return getWebResourceResponseFromString();
  19. }
  20. }
  21.  
  22. private WebResourceResponse getWebResourceResponseFromString() {
  23. return getUtf8EncodedWebResourceResponse(new StringBufferInputStream("alert('!NO!')"));
  24. }
  25.  
  26. private WebResourceResponse getUtf8EncodedWebResourceResponse(InputStream data) {
  27. return new WebResourceResponse("text/css", "UTF-8", data);
  28. }
  29.  
  30.  
  31. @Override
  32. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  33. return isValidHost(url);
  34. }
  35.  
  36. private boolean isValidHost(String url){
  37. if (!TextUtils.isEmpty(url)) {
  38. final String host = Uri.parse(url).getHost();
  39. for (String whitelistedHost: hostsWhitelist){
  40. if (whitelistedHost.equalsIgnoreCase(host)){
  41. return true;
  42. }
  43. }
  44. }
  45. return false;
  46. }
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement