Mam następujący kod dla bezpieczeństwa wiosennego, ale to nie działa. Kiedy otworzę stronę logowania i wprowadzę nazwę użytkownika/hasło, które jest [email protected]/secret, pojawi się następujący komunikat o błędzie. Po wprowadzeniu nazwy użytkownika/hasła należy dodać go do adresu ?error=1
, nawet jeśli usunę go ręcznie i odświeży się komunikat strony nie zostanie wysłany. Nic nie jest wyświetlane w konsoli.Spring-security pokazuje "Złe poświadczenia" jeszcze przed przesłaniem formularza
Your login attempt was not successful due to
Bad credentials.
wiosna-security.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<beans:import resource='login-service.xml' />
<http auto-config="true" access-denied-page="/notFound.jsp"
use-expressions="true">
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/member**" access="hasRole('ROLE_MEMBER')" />
<form-login login-page="/signin" default-target-url="/index"
authentication-failure-url="/signin?error=1" />
<logout logout-success-url="/login?logout" />
<csrf />
</http>
<authentication-manager>
<authentication-provider>
<user-service> <user name="[email protected]" password="secret"
authorities="ROLE_ADMIN"/>
<user name="[email protected]" password="secret" authorities="ROLE_USER"/>
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Formularz został następujący kod, wydaje się, że nie jest pusta SPRING_SECURITY_LAST_EXCEPTION
nawet przed złożeniem formularza.
<c:if test="${not empty SPRING_SECURITY_LAST_EXCEPTION}">
<font color="red"> Your login attempt was not successful due
to <br />
<br /> <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />.
</font>
</c:if>
<form id="form-login" role="form" method="post"
action="<c:url value='/j_spring_security_check' />"
class="relative form form-default">
<input type="hidden" name="${_csrf.parameterName}"
value="${_csrf.token}" />
nie jestem pewien dlaczego, ale te same zwroty kod następujący błąd teraz
Your login attempt was not successful due to
Authentication method not supported: GET.
Zauważyłem, że strona z odmową dostępu to '/ notFound.jsp' - czy na pewno masz problem z odmową dostępu, ale czy problem nie występuje w zasobach? – Ralph
@Ralph Nie jestem pewien, pokazuje stronę z komunikatem o błędzie. Nie jestem pewien, na czym polega problem –
Najpierw utwórz osobną stronę z odmową dostępu, a następnie skonfiguruj je w tagu 'spring-security: http' tag – Ralph