关于因为springboot版本问题导致无法使用sec:authorize标签

在关于SpringSecurity的学习中关于

<div sec:authorize="isAuthenticated()">
    <h2><span sec:authentication="name">span>,您好,您的角色有
        <span sec:authentication="principal.authorities">span>h2>
    <form th:action="@{/logout}" method="post">
        <input type="submit" value="注销"/>
    form>
div>

这段话中的sec:authorize并没有生效
查阅资料发现是因为版本问题
springsecurity4不支持SpringBoot2.0.7以上的版本
而在SpringBoot2.2.1中相关联的版本是springsecurity5,所以我们又两种修改方法

一,修改SpringBoot版本

<parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.0.7.RELEASEversion>
        <relativePath/> 
    parent>

修改为2.0.7版本
但是在ApplicationTests里会报错,判断原因是因为@Test包的地址不一样重新导包就可以了

二,修改springsecurity的版本

  <dependency>
            <groupId>org.thymeleaf.extrasgroupId>
            <artifactId>thymeleaf-extras-springsecurity5artifactId>
        dependency>

把pom文件中依赖改为springsecurity5

xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"

把页面中开头的引入也改为springsecurity5

这样就可以正常访问使用sec:authorize标签的页面了

愿代码之神保佑

你可能感兴趣的:(关于因为springboot版本问题导致无法使用sec:authorize标签)