Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring security注销转到j_Spring_security_注销_Java_Spring_Spring Security_Logout_Spring 3 - Fatal编程技术网

Java Spring security注销转到j_Spring_security_注销

Java Spring security注销转到j_Spring_security_注销,java,spring,spring-security,logout,spring-3,Java,Spring,Spring Security,Logout,Spring 3,在我的web应用程序中,当我尝试注销时,它会转到j\u spring\u security\u logout,而不是给定的页面。 在我的spring security.xml页面中,我添加了 问题是,当我使用spring security3.1.4.RELEASEversion时,这一点在早些时候起到了作用。 现在我正在使用3.2.2.RELEASE 我也试过以下方法。没用 spring security.xml <beans:beans xmlns="http://www.sprin

在我的web应用程序中,当我尝试注销时,它会转到
j\u spring\u security\u logout
,而不是给定的页面。 在我的
spring security.xml
页面中,我添加了

问题是,当我使用spring security3.1.4.RELEASEversion时,这一点在早些时候起到了作用。 现在我正在使用3.2.2.RELEASE

我也试过以下方法。没用

spring 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.xsd">

<http auto-config='true'>
    <intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <intercept-url pattern="/**" access="ROLE_USER" />
    <form-login login-page="/login" default-target-url="/transaction-view"
        always-use-default-target="true" authentication-failure-url="/loginfailed" />
    <logout logout-url="/logout" logout-success-url="/login.jsp" delete-cookies="JSESSIONID" />
    <session-management invalid-session-url="/invalidSession.htm">
        <concurrency-control max-sessions="1"
            error-if-maximum-exceeded="true" /> <!--this will throw error to second login attempt -->
    </session-management>
    <!-- <custom-filter before="FORM_LOGIN_FILTER" ref="myFilter" /> -->
    <csrf />
</http>

<beans:bean id="customSecurityService"
    class="com.fg.monitoringtool.web.security.SecurityService"></beans:bean>
<beans:bean id="passwordEncoder"
    class="com.fg.monitoringtool.web.security.PasswordEncoderMD5"></beans:bean>


<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="customSecurityService">
        <password-encoder ref="passwordEncoder">
        </password-encoder>
    </authentication-provider>

</authentication-manager>


提前感谢。

当您启用Spring Security CSRF保护时,您必须使用POST注销:

<c:url var="logoutUrl" value="/logout"/>
<form action="${logoutUrl}" method="post">
  <input type="submit" value="Log out" />
  <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>

使用默认注销url的更好方法是

<c:url var="logoutUrl" value="j_spring_security_logout"/>
<form action="${logoutUrl}" method="post">
  <input type="submit" value="Log out" />
  <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>


您可以发布您的完整的Spring安全配置吗?您注销的HTML代码是什么?您是否启用了CSRF保护?@holmis83是的,其CSRF保护已启用。链接是Try@geo,但不起作用,仍然会转到j_spring_security_logout,非常感谢您的回答。这就是问题所在。由于CSRF启用,我无法直接访问链接。你的解决方案是有效的。谢谢,谢谢!我为此工作了约半个小时。我不知道为什么它不工作了。测试了一个不工作的。我不会否决它,因为它可能是我的安全配置,但与接受的解决方案正在工作