j_security_check ist nicht verfügbar
Bin ich mit spring 3.0 und im Versuch, um mein login-Seite funktioniert, aber ich bekomme diese Fehlermeldung
The requested resource (/myapp/j_spring_security_check) is not available.
Ich bin Entsendung der Inhalt aller meiner Dateien, die mit Sicherheit zu tun. Hoffe, es wird genug sein. Bei Bedarf kann ich mehr zeigen.
Hier ist meine web.xml
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
Mein Login-Seite:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Login Page</title>
<style>
.errorblock {
color: #ff0000;
background-color: #ffEEEE;
border: 3px solid #ff0000;
padding: 8px;
margin: 16px;
}
</style>
</head>
<body onload='document.f.j_username.focus();'>
<h3>Login with Username and Password (Custom Page)</h3>
<c:if test="${not empty error}">
<div class="errorblock">
Your login attempt was not successful, try again.<br /> Caused :
${sessionScope["SPRING_SECURITY_LAST_EXCEPTION"].message}
</div>
</c:if>
<form name='f' action="<c:url value='j_spring_security_check' />"
method='POST'>
<table>
<tr>
<td>User:</td>
<td><input type='text' name='j_username' value=''>
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='j_password' />
</td>
</tr>
<tr>
<td colspan='2'><input name="submit" type="submit"
value="submit" />
</td>
</tr>
<tr>
<td colspan='2'><input name="reset" type="reset" />
</td>
</tr>
</table>
</form>
und meine Sicherheitskontext
<beans:bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
<beans:constructor-arg value="256" />
</beans:bean>
<beans:bean id="saltSource"
class="org.springframework.security.authentication.dao.ReflectionSaltSource">
<beans:property name="userPropertyToUse" value="id" />
</beans:bean>
<authentication-manager alias="authenticationManager">
<authentication-provider ref="authProvider" />
</authentication-manager>
<beans:bean id="authProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<beans:property name="userDetailsService" ref="personService" />
<beans:property name="passwordEncoder" ref="passwordEncoder" />
<beans:property name="saltSource" ref="saltSource" />
<beans:property name="includeDetailsObject" value="true" />
</beans:bean>
<beans:bean id="authenticationProcessingFilterEntryPoint"
class="org.springframework.security.web.authentication.AuthenticationProcessingFilterEntryPoint">
<beans:property name="forceHttps" value="false" />
<beans:property name="loginFormUrl" value="/login.html" />
</beans:bean>
<http entry-point-ref="authenticationProcessingFilterEntryPoint" auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER" />
<intercept-url pattern="/login.html" filters="none" />
<form-login login-page="/login.html" default-target-url="/welcome.html"
authentication-failure-url="/loginfailed.html" />
<logout logout-success-url="/logout" />
</http>
kann mir jemand helfen, dieses Problem lösen?
GELÖST! in meinem jsp-ich musste hinzufügen ".html" und leiten Sie zu arbeiten begonnen <form name='f' action="<c:url value='j_spring_security_check**.html - **' />" method='POST'>
Ich glaube, der Grund, Sie musste sich fügen .html ist, weil Sie abgebildet spring-security-filter-Kette auf *.html-Code. Das bedeutet auch, dass spring security im Allgemeinen nur angewendet werden *.html-Anfragen, anstatt alle Anfragen. Wenn das Eure Absicht ist, Super, wenn nicht, möchten Sie vielleicht Blick auf die url-Muster für Ihre springSecurityFilterChain
Ich glaube, der Grund, Sie musste sich fügen .html ist, weil Sie abgebildet spring-security-filter-Kette auf *.html-Code. Das bedeutet auch, dass spring security im Allgemeinen nur angewendet werden *.html-Anfragen, anstatt alle Anfragen. Wenn das Eure Absicht ist, Super, wenn nicht, möchten Sie vielleicht Blick auf die url-Muster für Ihre springSecurityFilterChain
InformationsquelleAutor Maciej Zablocki | 2011-11-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den .html-Code wird definitiv benötigt zu tun, wie der filter eingestellt ist. Der richtige Weg wäre, zu erklären, das url-Muster in der web.xml zur /*.
Wenn Sie gehen, damit das url-pattern *.html-könnte es sich lohnen zu prüfen, indem die login-processing-url-Attribut, um Ihre form-login-element, so dass, wenn jemand geht hin und ändert das web.xml alles wird nicht zusammenbrechen wegen dieser Marotte.
InformationsquelleAutor Joe