Spring boot Spring oauth2 AuthorizationServer不重定向

Spring boot Spring oauth2 AuthorizationServer不重定向,spring-boot,spring-security,oauth,spring-security-oauth2,Spring Boot,Spring Security,Oauth,Spring Security Oauth2,我使用Spring Security和Oauth2设置了一个授权服务。 在我尝试自定义登录页面之前,一切都很顺利。 如果我在自定义登录页面登录,它会重定向回登录页面,而不是回调url 获取/登录->发布/登录->获取/登录 SecurityConfig.java AuthorizationServerConfig.java login.html 您必须通过自定义登录页面发送CSRF令牌,请参阅: 9.21.1表单登录Java配置 [……] <c:url value="/login" var

我使用Spring Security和Oauth2设置了一个授权服务。 在我尝试自定义登录页面之前,一切都很顺利。 如果我在自定义登录页面登录,它会重定向回登录页面,而不是回调url

获取/登录->发布/登录->获取/登录

SecurityConfig.java AuthorizationServerConfig.java login.html
您必须通过自定义登录页面发送CSRF令牌,请参阅:

9.21.1表单登录Java配置

[……]

<c:url value="/login" var="loginUrl"/>
<form action="${loginUrl}" method="post">       1
    <c:if test="${param.error != null}">        2
        <p>
            Invalid username and password.
        </p>
    </c:if>
    <c:if test="${param.logout != null}">       3
        <p>
            You have been logged out.
        </p>
    </c:if>
    <p>
        <label for="username">Username</label>
        <input type="text" id="username" name="username"/>  4
    </p>
    <p>
        <label for="password">Password</label>
        <input type="password" id="password" name="password"/>  5
    </p>
    <input type="hidden"                        6
        name="${_csrf.parameterName}"
        value="${_csrf.token}"/>
    <button type="submit" class="btn">Log in</button>
</form>
使用JSP为当前配置实现的登录页面示例如下所示:

[……]

<c:url value="/login" var="loginUrl"/>
<form action="${loginUrl}" method="post">       1
    <c:if test="${param.error != null}">        2
        <p>
            Invalid username and password.
        </p>
    </c:if>
    <c:if test="${param.logout != null}">       3
        <p>
            You have been logged out.
        </p>
    </c:if>
    <p>
        <label for="username">Username</label>
        <input type="text" id="username" name="username"/>  4
    </p>
    <p>
        <label for="password">Password</label>
        <input type="password" id="password" name="password"/>  5
    </p>
    <input type="hidden"                        6
        name="${_csrf.parameterName}"
        value="${_csrf.token}"/>
    <button type="submit" class="btn">Log in</button>
</form>
1-发送到/login URL的帖子将尝试对用户进行身份验证

2-如果存在查询参数错误,则验证已尝试但失败

3-如果存在查询参数注销,则表示用户已成功注销

4-用户名必须作为名为username的HTTP参数存在

5-密码必须作为名为password的HTTP参数存在

6-我们必须阅读“包含CSRF令牌”一节,以了解更多信息,请阅读参考文件第5.1.1节“跨站点请求伪造CSRF”一节


你寄CSRF代币了吗?那是个错误。我忘记带代币了!谢谢你@dur
  <form  action="/login" method="POST">
            <div class="column">
                <div class="title">Anmelden</div>

                <div th:if="${param.error}" class="alert alert-error">
                    Invalid username and password.
                </div>
                <div th:if="${param.logout}" class="alert alert-success">
                    You have been logged out.
                </div>

                <input id="username" name="username" type="email" class="login input" placeholder="E-Mail Adresse"/>

                <input id="password" name="password" type="password" class="login input" placeholder="Passwort"/>
                <br>
                <p style="text-align: center; margin-top: 20px;"><a href="/password-forgotten">Passwort vergessen?</a></p>

                <button  style=" margin-top: 20px; margin-bottom: 20px" type="submit" class="button cancel login">Anmelden</button>
            </div>
        </form>
<c:url value="/login" var="loginUrl"/>
<form action="${loginUrl}" method="post">       1
    <c:if test="${param.error != null}">        2
        <p>
            Invalid username and password.
        </p>
    </c:if>
    <c:if test="${param.logout != null}">       3
        <p>
            You have been logged out.
        </p>
    </c:if>
    <p>
        <label for="username">Username</label>
        <input type="text" id="username" name="username"/>  4
    </p>
    <p>
        <label for="password">Password</label>
        <input type="password" id="password" name="password"/>  5
    </p>
    <input type="hidden"                        6
        name="${_csrf.parameterName}"
        value="${_csrf.token}"/>
    <button type="submit" class="btn">Log in</button>
</form>