Skip to content
Snippets Groups Projects
Commit f7b8e184 authored by Alinga Yeung's avatar Alinga Yeung
Browse files

Story ac2. Updated Password servlet as per Brian's code review comments.

parent 2ab9e92b
No related branches found
No related tags found
No related merge requests found
...@@ -97,12 +97,21 @@ public class PasswordServlet extends HttpServlet ...@@ -97,12 +97,21 @@ public class PasswordServlet extends HttpServlet
public void doPost(final HttpServletRequest request, final HttpServletResponse response) public void doPost(final HttpServletRequest request, final HttpServletResponse response)
throws IOException throws IOException
{ {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
final long start = System.currentTimeMillis(); final long start = System.currentTimeMillis();
final ServletLogInfo logInfo = new ServletLogInfo(request); final ServletLogInfo logInfo = new ServletLogInfo(request);
log.info(logInfo.start()); log.info(logInfo.start());
try
{
final Subject subject = AuthenticationUtil.getSubject(request); final Subject subject = AuthenticationUtil.getSubject(request);
if ((subject == null) || (subject.getPrincipals(HttpPrincipal.class).isEmpty()))
{
logInfo.setMessage("Missing subject");
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
}
else
{
logInfo.setSubject(subject); logInfo.setSubject(subject);
Subject.doAs(subject, new PrivilegedAction<Void>() Subject.doAs(subject, new PrivilegedAction<Void>()
{ {
@Override @Override
...@@ -110,17 +119,11 @@ public class PasswordServlet extends HttpServlet ...@@ -110,17 +119,11 @@ public class PasswordServlet extends HttpServlet
{ {
try try
{ {
response.setStatus(HttpServletResponse.SC_OK);
final Set<HttpPrincipal> webPrincipals = final Set<HttpPrincipal> webPrincipals =
subject.getPrincipals(HttpPrincipal.class); subject.getPrincipals(HttpPrincipal.class);
if (webPrincipals.isEmpty()) User<HttpPrincipal> user = new User<HttpPrincipal>(webPrincipals.iterator().next());
{
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
}
else
{
User<HttpPrincipal> user = new User<HttpPrincipal>(webPrincipals.toArray(
new HttpPrincipal[1])[0]);
String oldPassword = request.getParameter("old_password"); String oldPassword = request.getParameter("old_password");
String newPassword = request.getParameter("new_password"); String newPassword = request.getParameter("new_password");
if (StringUtil.hasText(oldPassword)) if (StringUtil.hasText(oldPassword))
...@@ -139,18 +142,31 @@ public class PasswordServlet extends HttpServlet ...@@ -139,18 +142,31 @@ public class PasswordServlet extends HttpServlet
throw new IllegalArgumentException("Missing old password"); throw new IllegalArgumentException("Missing old password");
} }
} }
}
catch (IllegalArgumentException e) catch (IllegalArgumentException e)
{ {
log.debug(e.getMessage(), e); log.debug(e.getMessage(), e);
logInfo.setMessage(e.getMessage()); logInfo.setMessage(e.getMessage());
response.setStatus(400); response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
} }
catch (AccessControlException e) catch (AccessControlException e)
{ {
log.debug(e.getMessage(), e); log.debug(e.getMessage(), e);
logInfo.setMessage(e.getMessage()); logInfo.setMessage(e.getMessage());
response.setStatus(401); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
}
catch (Throwable t)
{
String message = "Internal Server Error: " + t.getMessage();
log.error(message, t);
logInfo.setSuccess(false);
logInfo.setMessage(message);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
return null;
}
});
}
} }
catch (Throwable t) catch (Throwable t)
{ {
...@@ -158,16 +174,11 @@ public class PasswordServlet extends HttpServlet ...@@ -158,16 +174,11 @@ public class PasswordServlet extends HttpServlet
log.error(message, t); log.error(message, t);
logInfo.setSuccess(false); logInfo.setSuccess(false);
logInfo.setMessage(message); logInfo.setMessage(message);
response.setStatus(500);
} }
finally finally
{ {
logInfo.setElapsedTime(System.currentTimeMillis() - start); logInfo.setElapsedTime(System.currentTimeMillis() - start);
log.info(logInfo.end()); log.info(logInfo.end());
} }
return null;
}
});
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment