0
点赞
收藏
分享

微信扫一扫

【机器学习——决策树算法——Python实现——信用评级】

由于jdk版本是1.8的所以需要把java.version更改,更改java1.8的后springboot就要改成2.几的,3.几的是java11以上用的

1.2创建第一个测试资源项目

启动启动类后进入Hello页面会跳转到login

默认name是user,password在后台

2. 自定义账户和密码

2.1 在application.properties中定义

# 自定义security的账户和密码--不会帮你生成密码了
spring.security.user.name=admin
spring.security.user.password=123456

2.2 自定义多个账户和密码

配置类基础extends WebSecurityConfigurerAdapter然后重写configure(AuthenticationManagerBuilder auth)

@Configuration
public class MySecurityConfig extends WebSecurityConfigurerAdapter {
​
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication() //基于内存创建的账户 未来我们可以基于数据库
                .withUser("zhangsan") //账号名
                .password("123456") //密码
                .roles("admin") //具有的角色
                .and() //连接符
                .withUser("lisi")
                .password("123456")
                .roles("test")
        ;
    }
}

 

3. 密码加密器

public static void main(String[] args) {
        //创建了密码加密器
        PasswordEncoder passwordEncoder=new BCryptPasswordEncoder();
        //加密功能
        String encode = passwordEncoder.encode("123456"); //把明文加密后生成了密文。
​
        //密码匹配  第一个参数: 客户输入的明文   第二个参数: 数据库中存在的密文
        boolean matches = passwordEncoder.matches("1234567", encode);
        System.out.println(matches);
    }

4. 获取当前用户的信息

    @GetMapping("/info")
    public Authentication info(){
        //把当前用户信息保存在SecurityContext类中。
        SecurityContext securityContext = SecurityContextHolder.getContext();
        //把当前用户信息封装到Authentication类中。账户 密码 权限  角色等信息
        Authentication authentication = securityContext.getAuthentication();
        return authentication;
    }

5. 修改security的默认配置

5.1 修改它的登录页面

1.自己在static目录下创建一个登录页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--注意: 提交路径action必须为login 提交方式必须为post.
          input的名称必须为username和password
-->
        <form action="/login" method="post">
            账户:<input type="text" name="username"/><br>
            密码:<input type="password" name="password"/><br>
            <input type="submit"/>
        </form>
</body>
</html>

2.修改Security配置类

 @Override
    protected void configure(HttpSecurity http) throws Exception {
        //设置表单登录信息
          http.formLogin()
                  .loginPage("/login.html") //设置自己的登录界面
                   
                  //.usernameParameter("name") //设置表单的账户名称 默认为usernae
                   .permitAll(); //允许放行
​
        //禁用跨域伪造请求的验证
        http.csrf().disable();
        //其他请求路径都要认证
        http.authorizeRequests().anyRequest().authenticated();
    }

5.2 设置登录成功跳转的页面

1.修改security配置类

2.创建SuccessController类

@Controller
public class SuccessController {
​
    @PostMapping("/success")
    public String success(){
        return "redirect:/success.html";
    }
}

3.创建成功页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
登录成功
</body>
</html>

登录失败指定跳转路径

.failureUrl("/failureurl.html")
举报

相关推荐

0 条评论