diff options
Diffstat (limited to 'src/main/java/com/juick/www/filters/AnythingFilter.java')
-rw-r--r-- | src/main/java/com/juick/www/filters/AnythingFilter.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/com/juick/www/filters/AnythingFilter.java b/src/main/java/com/juick/www/filters/AnythingFilter.java index 2ec82801..ffd11b29 100644 --- a/src/main/java/com/juick/www/filters/AnythingFilter.java +++ b/src/main/java/com/juick/www/filters/AnythingFilter.java @@ -45,8 +45,8 @@ public class AnythingFilter extends OncePerRequestFilter { @Override public void doFilterInternal(HttpServletRequest servletRequest, - HttpServletResponse servletResponse, - FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse servletResponse, + FilterChain filterChain) throws IOException, ServletException { String upgrade = servletRequest.getHeader("Connection"); if (upgrade != null && upgrade.equals("Upgrade")) { filterChain.doFilter(servletRequest, servletResponse); @@ -57,21 +57,23 @@ public class AnythingFilter extends OncePerRequestFilter { int before = NumberUtils.toInt(components.getQueryParams().getFirst("before"), 0); if (before == 0) { boolean isPostNumber = WebUtils.isPostNumber(anything); - int messageId = isPostNumber ? - NumberUtils.toInt(anything) : 0; + int messageId = isPostNumber ? NumberUtils.toInt(anything) : 0; if (isPostNumber && anything.equals(Integer.toString(messageId))) { if (messageId > 0) { - User author = messagesService.getMessageAuthor(messageId); + var message = messagesService.getMessage(messageId); + if (message.isPresent()) { + User author = message.get().getUser(); - if (author != null) { - servletResponse.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); - servletResponse.setHeader("Location", "/" + author.getName() + "/" + anything); - return; + if (author != null) { + servletResponse.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); + servletResponse.setHeader("Location", "/" + author.getName() + "/" + anything); + return; + } } } } - ; + ; if (userService.getUsernames().stream().anyMatch(name -> name.equals(anything))) { servletResponse.sendRedirect("/" + anything + "/"); } else { |