java – 使用Thymeleaf时,Spring security sessionscope似乎为null

当登录失败并带有spring security时,它会抛出异常并将其显示在我的JSP中,如下所示:

<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>

现在我正在从JSP更改为Thymeleaf并尝试执行相同的操作,但是当登录失败时,sessionScope变量似乎为null.

<div th:if="${error}" class="errorblock" th:text="'testing ' + ${sessionScope}">

</div>

这打印出测试null.当我将视图解析器更改回JSP时,它可以很好地工作.我想我做错了什么.有什么建议?

最佳答案
在Thymeleaf中,您不使用sessionScope令牌名称访问会话变量.你改用会话.所以你需要做类似的事情:

<div class="error" 
     th:if="${param.login_error}"
     th:with="errorMsg=${session["SPRING_SECURITY_LAST_EXCEPTION"].message}">
  Your login attempt was not successful, try again.<br />
  Reason: <span th:text="${errorMsg}">Wrong input!</span> 
</div>

免责声明,根据StackOverflow规则:我是Thymeleaf的作者.

转载注明原文:java – 使用Thymeleaf时,Spring security sessionscope似乎为null - 代码日志