Где я могу найти "j_security_check"?

Есть ли стандартное расположение для "j_security_check", чтобы я мог посмотреть на него?

Поиск моего компьютера не находит файл, просто ссылки на него. Итак, либо скрытый по соображениям безопасности, либо не файл?

Я был заблокирован из приложения, и это первое место, которое я рассматриваю для решений.

Ответы

Ответ 1

Это часть API сервлета и встроена в контейнер servletcontainer. В вашем случае он встроен в Tomcat. Более конкретно, класс org.apache.catalina.authenticator.FormAuthenticator.

227        // Is this the action request from the login page?
228        boolean loginAction =
229            requestURI.startsWith(contextPath) &&
230            requestURI.endsWith(Constants.FORM_ACTION);
231
232        // No -- Save this request and redirect to the form login page
233        if (!loginAction) {
234            session = request.getSessionInternal(true);
235            if (log.isDebugEnabled())
236                log.debug("Save request in session '" + session.getIdInternal() + "'");
237            try {
238                saveRequest(request, session);
239            } catch (IOException ioe) {
240                log.debug("Request body too big to save during authentication");
241                response.sendError(HttpServletResponse.SC_FORBIDDEN,
242                        sm.getString("authenticator.requestBodyTooBig"));
243                return (false);
244            }
245            forwardToLoginPage(request, response, config);
246            return (false);
247        }
248
249        // Yes -- Validate the specified credentials and redirect
250        // to the error page if they are not correct
251        Realm realm = context.getRealm();
252        if (characterEncoding != null) {
253            request.setCharacterEncoding(characterEncoding);
254        }
255        String username = request.getParameter(Constants.FORM_USERNAME);
256        String password = request.getParameter(Constants.FORM_PASSWORD);
257        if (log.isDebugEnabled())
258            log.debug("Authenticating username '" + username + "'");
259        principal = realm.authenticate(username, password);
260        if (principal == null) {
261            forwardToErrorPage(request, response, config);
262            return (false);
263        }

Constants.FORM_ACTION /j_security_check.

Что касается конкретной проблемы блокировки, просто убедитесь, что вы указали правильное имя пользователя и пароль. Пользовательская база данных обычно настраивается realm.

Ответ 3

Вам не нужно ничего делать с помощью j_security_check. Проблема в другом месте:

Например:

Подключение к БД (или в вашем случае файл tomcat-users.xml, если вы используете Tomcat), шифрование пароля, что-то в web.xml, что-то в контексте .xml. Для Glassfish это также может быть бассейн и царство или что-то в glassfish-web.xml.

Внимательно проверьте журналы. Для GF вам нужно включить Finest так: (a) Перейдите на эту страницу: http://localhost:4848/common/monitor/serverInstMonitoringServerPage.jsf. (b) Установите для этого свойства значение Finest: javax.enterprise.system.core.security