Commit 57c727a8 by Tuomas Riihimäki

More logging for rest errors

1 parent 72df7970
...@@ -66,6 +66,10 @@ public class HostnameFilter implements Filter { ...@@ -66,6 +66,10 @@ public class HostnameFilter implements Filter {
// Nothing... // Nothing...
} }
private enum AuthType {
UNKNOWN, ANON, REST, USER
}
/** /**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/ */
...@@ -74,7 +78,7 @@ public class HostnameFilter implements Filter { ...@@ -74,7 +78,7 @@ public class HostnameFilter implements Filter {
FilterChain chain) throws IOException, ServletException { FilterChain chain) throws IOException, ServletException {
// logger.info("HostnameFilter called!"); // logger.info("HostnameFilter called!");
HttpServletRequest httpRequest = null; HttpServletRequest httpRequest = null;
AuthType authtype = AuthType.UNKNOWN;
if (request != null && request instanceof HttpServletRequest) { if (request != null && request instanceof HttpServletRequest) {
httpRequest = ((HttpServletRequest) request); httpRequest = ((HttpServletRequest) request);
parseHostname(httpRequest); parseHostname(httpRequest);
...@@ -82,6 +86,7 @@ public class HostnameFilter implements Filter { ...@@ -82,6 +86,7 @@ public class HostnameFilter implements Filter {
if (httpRequest.getUserPrincipal() == null) { if (httpRequest.getUserPrincipal() == null) {
// Check if we are logging in with rest // Check if we are logging in with rest
if (RestApplicationEntrypoint.REST_PATH.equals(httpRequest.getServletPath())) { if (RestApplicationEntrypoint.REST_PATH.equals(httpRequest.getServletPath())) {
authtype = AuthType.REST;
if (!restAuth(httpRequest, response)) { if (!restAuth(httpRequest, response)) {
response.getWriter().write("REST authentication failed!"); response.getWriter().write("REST authentication failed!");
if (response instanceof HttpServletResponse) { if (response instanceof HttpServletResponse) {
...@@ -92,6 +97,7 @@ public class HostnameFilter implements Filter { ...@@ -92,6 +97,7 @@ public class HostnameFilter implements Filter {
} }
} else { } else {
try { try {
authtype = AuthType.ANON;
httpRequest.login(User.ANONYMOUS_LOGINNAME, null); httpRequest.login(User.ANONYMOUS_LOGINNAME, null);
} catch (Throwable t) { } catch (Throwable t) {
logger.warn("Error logging in as anonymous... ignoring.. ", t); logger.warn("Error logging in as anonymous... ignoring.. ", t);
...@@ -100,6 +106,7 @@ public class HostnameFilter implements Filter { ...@@ -100,6 +106,7 @@ public class HostnameFilter implements Filter {
} }
else if (!httpRequest.getUserPrincipal().getName().equals(User.ANONYMOUS_LOGINNAME)) else if (!httpRequest.getUserPrincipal().getName().equals(User.ANONYMOUS_LOGINNAME))
{ {
authtype = AuthType.USER;
sessionmgmt.updateSessionUser(httpRequest.getSession().getId(), httpRequest.getUserPrincipal().getName()); sessionmgmt.updateSessionUser(httpRequest.getSession().getId(), httpRequest.getUserPrincipal().getName());
} }
...@@ -107,6 +114,12 @@ public class HostnameFilter implements Filter { ...@@ -107,6 +114,12 @@ public class HostnameFilter implements Filter {
// pass the request along the filter chain // pass the request along the filter chain
try { try {
chain.doFilter(request, response); chain.doFilter(request, response);
} catch (Throwable t) {
if (AuthType.REST == authtype) {
logger.warn("Caught Exception for REST query. url {}, method: {}, content type {}, and length {}", httpRequest.getRequestURL(), httpRequest.getMethod(), httpRequest.getContentType(), httpRequest.getContentLength());
logger.warn("Caught exception at rest:", t);
}
throw t;
} finally { } finally {
BortalLocalContextHolder.cleanupThread(); BortalLocalContextHolder.cleanupThread();
} }
......
...@@ -14,6 +14,8 @@ import javax.ws.rs.PathParam; ...@@ -14,6 +14,8 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.Response.Status;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -92,6 +94,15 @@ public class MapAdminView { ...@@ -92,6 +94,15 @@ public class MapAdminView {
return Response.ok().build(); return Response.ok().build();
} }
@GET
@Path("/place/")
public Response getPlaceError() {
ResponseBuilder ret = Response.ok();
ret = ret.status(Status.METHOD_NOT_ALLOWED);
ret.entity("Method not allowed!\nGET is not supported for /place/. See api for correct use!");
return ret.build();
}
@POST @POST
@Path("/place/") @Path("/place/")
public Response createPlace(PlaceInputPojo create) { public Response createPlace(PlaceInputPojo create) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!