是否有“j_security_check”的标准位置,以便我可以查看它?
搜索我的计算机时找不到该文件,只是对它的引用。因此,出于安全原因隐藏它还是不是文件?
我已被锁定在应用程序之外,这是我第一个看到解决方案的地方。
答案 0 :(得分:21)
它是Servlet 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配置。
答案 1 :(得分:5)
这不是文件,这是基于容器的身份验证的别名:
http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html
答案 2 :(得分:-1)
您不需要对j_security_check做任何事情。问题出在其他地方:
例如:
连接到数据库(如果您正在使用Tomcat,则为tomcat-users.xml文件),密码加密,web.xml中的某些内容,以及context.xml中的内容。对于Glassfish,它也可以是glassfish-web.xml中的池和领域。
仔细检查日志。对于GF,您需要像这样启用Finest: (a)转到此页面:http://localhost:4848/common/monitor/serverInstMonitoringServerPage.jsf。 (b)将此属性设置为Finest:javax.enterprise.system.core.security