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