前端修复,日志功能加入
This commit is contained in:
@@ -8,6 +8,7 @@ import com.mzh.library.service.impl.AuthServiceImpl;
|
||||
import com.mzh.library.util.SessionAttributes;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
@@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
public class LoginServlet extends HttpServlet {
|
||||
private static final Logger LOGGER = Logger.getLogger(LoginServlet.class.getName());
|
||||
private static final String LOGIN_JSP = "/WEB-INF/jsp/auth/login.jsp";
|
||||
private static final String DASHBOARD_PATH = "/dashboard";
|
||||
private static final int SESSION_TIMEOUT_SECONDS = 30 * 60;
|
||||
@@ -40,9 +42,13 @@ public class LoginServlet extends HttpServlet {
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
String username = trim(request.getParameter("username"));
|
||||
String submittedUsername = request.getParameter("username");
|
||||
String username = trim(submittedUsername);
|
||||
String password = request.getParameter("password");
|
||||
String redirect = safeRedirect(request.getParameter("redirect"));
|
||||
String submittedRedirect = request.getParameter("redirect");
|
||||
String redirect = safeRedirect(submittedRedirect);
|
||||
|
||||
logLoginPost(request, submittedUsername, username, password, submittedRedirect, redirect);
|
||||
|
||||
AuthenticationResult result = authService.authenticate(username, password);
|
||||
if (!result.isAuthenticated()) {
|
||||
@@ -57,6 +63,26 @@ public class LoginServlet extends HttpServlet {
|
||||
response.sendRedirect(resolveRedirect(request, redirect));
|
||||
}
|
||||
|
||||
private void logLoginPost(
|
||||
HttpServletRequest request,
|
||||
String submittedUsername,
|
||||
String username,
|
||||
String password,
|
||||
String submittedRedirect,
|
||||
String redirect
|
||||
) {
|
||||
LOGGER.info("Login POST reached"
|
||||
+ " remoteAddr=" + safeLogValue(request.getRemoteAddr())
|
||||
+ " contextPath=" + safeLogValue(request.getContextPath())
|
||||
+ " redirectSubmitted=" + !trim(submittedRedirect).isEmpty()
|
||||
+ " redirectAccepted=" + !redirect.isEmpty()
|
||||
+ " usernameSubmitted=" + (submittedUsername != null)
|
||||
+ " usernameLength=" + length(submittedUsername)
|
||||
+ " normalizedUsernameLength=" + username.length()
|
||||
+ " usernameNormalizedChanged=" + !username.equals(nullToEmpty(submittedUsername))
|
||||
+ " passwordSubmitted=" + (password != null));
|
||||
}
|
||||
|
||||
private boolean isAuthenticated(HttpServletRequest request) {
|
||||
HttpSession session = request.getSession(false);
|
||||
return session != null && session.getAttribute(SessionAttributes.AUTHENTICATED_USER) != null;
|
||||
@@ -97,4 +123,29 @@ public class LoginServlet extends HttpServlet {
|
||||
private String trim(String value) {
|
||||
return value == null ? "" : value.trim();
|
||||
}
|
||||
|
||||
private int length(String value) {
|
||||
return value == null ? 0 : value.length();
|
||||
}
|
||||
|
||||
private String nullToEmpty(String value) {
|
||||
return value == null ? "" : value;
|
||||
}
|
||||
|
||||
private String safeLogValue(String value) {
|
||||
if (value == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int limit = Math.min(value.length(), 120);
|
||||
for (int i = 0; i < limit; i++) {
|
||||
char current = value.charAt(i);
|
||||
builder.append(Character.isISOControl(current) ? '?' : current);
|
||||
}
|
||||
if (value.length() > limit) {
|
||||
builder.append("...");
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user