如何在spring boot中配置SpringSecurityDialect以获得sec:authorize的工作。

问题描述 投票:0回答:1

sec:authorize 好像不行!

也不是 Log Out 也不 Login 当我启动应用程序时,尽管在这里和那里进行了调整,但还是显示出了......

下面的代码在我的html文件中没有任何显示。

               <li class="nav-item"
                    sec:authorize="isAuthenticated()">
                    <form th:action="@{/logout}"
                          method="post"
                          name="logoutForm">
                    </form>
                    <a class="nav-link"
                       href="#"
                       onclick="document.logoutForm.submit()">
                        <i class="fas fa-sign-out-alt"></i>Log Out</a>
                </li>
                <li class="nav-item"
                    sec:authorize="isAnonymous()">
                    <form th:action="@{/login}"
                          method="post"
                          name="loginForm">
                    </form>
                    <a class="nav-link"
                       href="#"
                       onclick="document.loginForm.submit()">
                        <i class="fas fa-sign-out-alt"></i>Log In</a>
                </li>

下面是我的build.gradle文件

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'org.launchcode'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '14'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

repositories {
    mavenCentral()
}

    dependencies {

        implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.2.7.RELEASE'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.security:spring-security-crypto'
        implementation 'org.springframework.data:spring-data-commons:2.2.6.RELEASE'
        implementation 'org.springframework.security:spring-security-core:5.1.4.RELEASE'
        implementation 'org.springframework.security:spring-security-web:5.3.2.RELEASE'
        implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.0.4.RELEASE'

        implementation 'mysql:mysql-connector-java'

        implementation 'org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE'
        implementation 'org.webjars:bootstrap:4.4.1-1'

        implementation 'com.googlecode.json-simple:json-simple:1.1.1'
        implementation 'com.fasterxml.jackson.core:jackson-core:2.11.0'

        developmentOnly 'org.springframework.boot:spring-boot-devtools'
        testImplementation('org.springframework.boot:spring-boot-starter-test') {
            exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }
    }

test {
    useJUnitPlatform()
}

下面是我的配置类,包含了注册SpringSecurityDialect的@Bean。

@Configuration
public class WebApplicationConfig implements WebMvcConfigurer {

    // Create spring-managed object to allow the app to access our filter
    @Bean
    public AuthenticationFilter authenticationFilter() {
        return new AuthenticationFilter();
    }

    // Register the filter with the Spring container
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(authenticationFilter());
    }

    @Bean
    public SpringSecurityDialect springSecurityDialect() {
        return new SpringSecurityDialect();
    }

}

我想我是按照这里的建议去做的 https:/github.comthymeleafthymeleaf-extras-springsecuritytree3.0-dev。

但我不知道为什么还是不行.任何帮助感谢。

spring-boot security configuration thymeleaf
1个回答
0
投票

我只是想说,我用不同的方法处理了这个问题(我无法理解SpringSecurityDialect的设置),所以我做了如下处理。

<li th:if="${isLoggedIn != null}"
    class="nav-item">
    <form th:action="@{/logout}"
          method="post"
          name="logoutForm">
    </form>
    <a class="nav-link"
       href="#"
       onclick="document.logoutForm.submit()">
        <i class="fas fa-sign-out-alt"></i>
        Log Out</a>
</li>
<li th:if="${isLoggedIn == null}"
    class="nav-item">
    <a class="nav-link"
       th:href="@{/login}">
        <i class="fas fa-sign-in-alt"></i>
        Log In</a>
</li>

运作良好 也许以后我会再尝试学习如何使用Spring Security方言。恭祝

© www.soinside.com 2019 - 2024. All rights reserved.