Thymeleaf和Spring安全无法正常工作[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thymeleaf和Spring安全无法正常工作[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我正在尝试使用Spring框架创建一个应用程序,到目前为止功能正常,但Spring安全性无法正常工作

我创建了这个html文件,但问题是它没有显示任何内容,即使我以管理员或用户身份登录

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
    <head th:fragment="head">
        <meta charset="UTF-8">
        <title th:text="${titulo}"></title>

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
    </head>
    <body>

        <p>User Logged: </p><span sec:authentication="name"></span></li>

    </body>
</html>

这是我的springSecurityConfig.java

package com.bolsadeideasspringboot.app;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.User.UserBuilder;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter{


@Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests()
    .antMatchers("/", "/css/**", "/js/**", "/img/**", "/listar").permitAll()
    .antMatchers("/ver/**").hasAnyRole("USER")
    .antMatchers("/uploads/**").hasAnyRole("USER")
    .antMatchers("/form/**").hasAnyRole("ADMIN")
    .antMatchers("/eliminar/**").hasAnyRole("ADMIN")
    .antMatchers("/factura/**").hasAnyRole("ADMIN").anyRequest().authenticated()
    .and()
    .formLogin().loginPage("/login")
    .permitAll()
    .and()
    .logout().permitAll();
}

@Autowired
public void configurerglobal(AuthenticationManagerBuilder build) throws Exception {

    //UserBuilder user = User.withDefaultPasswordEncoder();

    PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
    UserBuilder users = User.builder().passwordEncoder(encoder::encode);

    build.inMemoryAuthentication()
    .withUser(users.username("admin").password("pass").roles("ADMIN", "USER"))
    .withUser(users.username("user").password("user").roles("USER"));               
}

}

我不知道为什么不工作,任何帮助都会有所帮助,谢谢

答案

感谢@ArslanAnjum,他建议this帖子,我需要添加的是这部分到我的html文件,现在Spring安全工作正常

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
    <property name="additionalDialects">
        <set>
            <bean class="org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect" />
        </set>
    </property>
</bean>
另一答案

尝试使用@EnableWebSecurity注释该类。这应该有所帮助。

以上是关于Thymeleaf和Spring安全无法正常工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot + Thymeleaf Security 无法识别

无法使用 Spring Boot thymeleaf 加载图像

Thymeleaf (Java Spring):无法让 mvc.uri 工作

Spring安全+ JWT +认证和hasRole无法正常工作?

Spring 安全配置无法正常工作

Spring Security,Boot:安全规则无法正常工作