我遇到一個問題,自定義登錄頁面似乎不能正常作業。它把我送到了login?error url,而不是索引頁。當使用默認的Spring Security頁面時,它完全按照預期作業。我在下面放置了html頁面的代碼,以及處理安全和自定義頁面的一般代碼。
我還使用了一個postgresql資料庫,如果這與此有關的話。
login.html
<! DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org" >
<head>
<title>索引</title>
<link href="webjars/bootstrap/5.1.0/css/bootstrap.min.css" rel="styleheet">
</head>
<body>
<div class="container col-xl-10 col-xxl-8 px-4 py-5" >
<div class="row align-items-center g-lg-5 py-5">
<div class="col-lg-7 text-center text-lg-start">
<h1 class="display-4 fw-bold lh-1 mb-3">Twitter-Clone< /h1>
<p class="col-lg-10 fs-4">你必須在訪問網站前登錄。THYMELEAF</p>
</div>
<div class="col-md-10 mx-auto col-lg-5">
<form class="p-4 p-md-5 border rounded-3 bg-light" th:action="@{/login}" method="post" name="f">
<div class="form-floating mb-3">
<input type="text" class="form-control" id="floatingInput username" placeholder="用戶名">
<標簽 for="floatingInput">用戶名</label>。
</div>
<div class="form-floating mb-3">
< input type="password" class="form-control" id="floatingPassword password" placeholder="Password" name="password">
<標簽 for="floatingPassword">密碼</label>
</div>
<div class="checkbox mb-3">
<標簽>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<按鈕 class="w-100 btn btn-lg btn-info" type="submit"> 登錄</button>
<hr class="my-4">
<small class="text-muted">如果你沒有賬戶,<a href="signup">注冊</a>.</small>。
</form>
</div>
</div>
</div>
<腳本 src="webjars/jquery/3.6.0/jquery.min.js"></script>
<腳本 src="webjars/bootstrap/5.1.0/js/bootstrap.min.js"></script>
</body>
</html>
SecurityConfiguration.java
package com.example.demo。
import org.springframework.context.annotation.Bean。
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.DelegatingPasswordEncoder。
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@EnableWebSecurity
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter{
@Bean(name = "pwdEncoder")/span>
public PasswordEncoder getPasswordEncoder(){
DelegatingPasswordEncoder delPasswordEncoder = (DelegatingPasswordEncoder) PasswordEncoderFactories
.createDelegatingPasswordEncoder()。
BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder()。
delPasswordEncoder.setDefaultPasswordEncoderForMatches(bcryptPasswordEncoder)。
return delPasswordEncoder。
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/webjars/**"/span>, "/signup"/span>).permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll()。
}
}
uj5u.com熱心網友回復:
你忘了在你的username輸入中包含name屬性
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331543.html
標籤:
