01: package org.bouncycastle.i18n.filter;
02:
03: /**
04: * Filter for strings to store in a SQL table.
05: *
06: * escapes ' " = - / \ ; \r \n
07: */
08: public class SQLFilter implements Filter {
09:
10: public String doFilter(String input) {
11: StringBuffer buf = new StringBuffer(input);
12: int i = 0;
13: while (i < buf.length()) {
14: char ch = buf.charAt(i);
15: switch (ch) {
16: case '\'':
17: buf.replace(i, i + 1, "\\\'");
18: i += 1;
19: break;
20: case '\"':
21: buf.replace(i, i + 1, "\\\"");
22: i += 1;
23: break;
24: case '=':
25: buf.replace(i, i + 1, "\\=");
26: i += 1;
27: break;
28: case '-':
29: buf.replace(i, i + 1, "\\-");
30: i += 1;
31: break;
32: case '/':
33: buf.replace(i, i + 1, "\\/");
34: i += 1;
35: break;
36: case '\\':
37: buf.replace(i, i + 1, "\\\\");
38: i += 1;
39: break;
40: case ';':
41: buf.replace(i, i + 1, "\\;");
42: i += 1;
43: break;
44: case '\r':
45: buf.replace(i, i + 1, "\\r");
46: i += 1;
47: break;
48: case '\n':
49: buf.replace(i, i + 1, "\\n");
50: i += 1;
51: break;
52: default:
53: }
54: i++;
55: }
56: return buf.toString();
57: }
58:
59: public String doFilterUrl(String input) {
60: return doFilter(input);
61: }
62:
63: }
|