Spring Security-从入门到精通-登录失败页面跳转+自定义登录参数

1 SecurityConfig配置类

package com.mangoubiubiu.security.config;

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.password.PasswordEncoder;

/**
 * SecurityConfig 配置类
 */
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {


    @Override
    protected void configure(HttpSecurity http) throws Exception {
            //表单登录
            http.formLogin()
                    .loginProcessingUrl("/login")
                    .loginPage("/login.html")
                    .successForwardUrl("/main")
                    .failureForwardUrl("/toError")
                    //自定义登录用户名参数
                    .usernameParameter("user")
                    .passwordParameter("pwd");
            //所有请求都必须被认证(登录)
            http.authorizeRequests()
                    //放行登录页面
                    .antMatchers("/login.html","/error.html").permitAll()
                    //所有请求都必须被认证(登录)
                    .anyRequest().authenticated();

            //关闭 csrf 跨站请求伪造
            http.csrf().disable();
    }

    @Bean
    public PasswordEncoder pw(){
        return new BCryptPasswordEncoder();
    }

}

2 error.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录失败</title>
</head>
<body>
<h1 style="color: red">登录失败</h1>

</body>
</html>

3 LoginController

package com.mangoubiubiu.security.controller;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoginController {


    @RequestMapping("/main")
    public String tomain(){
        return "redirect:main.html";
    }


    @RequestMapping("/toError")
    public String error(){
        return "redirect:error.html";
    }

}

 

 

posted @ 2022-04-30 23:22  KwFruit  阅读(275)  评论(0编辑  收藏  举报