Skip to content

Commit e3078d9

Browse files
committed
Add MyAlfrescoApiConnector connector which extends HttpOAuth2Connector, and also removes any Origin header to work against the public API and avoid the CORS filter
1 parent db65b19 commit e3078d9

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.sharextras.webscripts.connector;
2+
3+
import java.util.Enumeration;
4+
import java.util.Vector;
5+
6+
import javax.servlet.http.HttpServletRequest;
7+
import javax.servlet.http.HttpServletRequestWrapper;
8+
import javax.servlet.http.HttpServletResponse;
9+
10+
import org.springframework.extensions.config.RemoteConfigElement.ConnectorDescriptor;
11+
import org.springframework.extensions.webscripts.connector.ConnectorContext;
12+
import org.springframework.extensions.webscripts.connector.Response;
13+
14+
public class MyAlfrescoApiConnector extends HttpOAuth2Connector
15+
{
16+
private static final String HEADER_ORIGIN = "Origin";
17+
18+
public MyAlfrescoApiConnector(ConnectorDescriptor descriptor, String endpoint)
19+
{
20+
super(descriptor, endpoint);
21+
}
22+
23+
@Override
24+
public Response call(String uri, ConnectorContext context, HttpServletRequest req, HttpServletResponse res)
25+
{
26+
return super.call(uri, context, new NoOriginRequest(req), res);
27+
}
28+
29+
private static final class NoOriginRequest extends HttpServletRequestWrapper
30+
{
31+
public NoOriginRequest(HttpServletRequest request)
32+
{
33+
super((HttpServletRequest)request);
34+
}
35+
36+
@Override
37+
public String getHeader(String name)
38+
{
39+
return !HEADER_ORIGIN.toLowerCase().equals(name) ? super.getHeader(name) : null;
40+
}
41+
42+
@Override
43+
@SuppressWarnings("rawtypes")
44+
public Enumeration getHeaderNames()
45+
{
46+
Enumeration headers = super.getHeaderNames();
47+
Vector<String> list = new Vector<String>();
48+
while(headers.hasMoreElements())
49+
{
50+
String name = (String) headers.nextElement();
51+
if (!HEADER_ORIGIN.toLowerCase().equals(name))
52+
{
53+
list.add(name);
54+
}
55+
}
56+
return list.elements();
57+
}
58+
}
59+
60+
}

0 commit comments

Comments
 (0)