SpringBoot整合Spring Security,使用formLogin模式进行鉴权(二)

简介: 在configure(HttpSecurity http)方法里写入如下代码

一、使用formLogin模式进行鉴权

在configure(HttpSecurity http)方法里写入如下代码

http.csrf().disable()
                .formLogin()
                .loginPage("/login.html")//设置登录页,该页面放在public目录下
                .loginProcessingUrl("/login")//设置登录请求地址,默认就是login
                .defaultSuccessUrl("/index")//设置登录成功后跳转地址
                .usernameParameter("uname")//配置用户名参数,默认是username
                .passwordParameter("pword")//配置密码参数,默认是password
                .and()
                .authorizeRequests()
                .antMatchers("/login.html","/login").permitAll()//配置无需认证即可访问的请求
                .antMatchers("/biz1","/biz2").hasAnyAuthority("ROLE_user","ROLE_admin")//配置需要权限才能访问的请求
                .antMatchers("/syslog","/sysuser").hasAnyAuthority("ROLE_admin")
                .anyRequest().authenticated();//配置其他的所有请求需要认证


然后重写另外两个configure方法

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        //从内存里获取用户数据
        auth.inMemoryAuthentication()
                //配置用户信息
                .withUser("user").authorities("ROLE_user").password(new BCryptPasswordEncoder().encode("1"))
                .and()
                //配置管理员信息
                .withUser("admin").authorities("ROLE_user","ROLE_admin").password(new BCryptPasswordEncoder().encode("1"))
                .and()
                //密码均采用BCrypt加密方式
                .passwordEncoder(new BCryptPasswordEncoder());
    }
    @Override
    public void configure(WebSecurity web) throws Exception {
        //放行所有静态资源
        web.ignoring()
                .antMatchers("/css/**","/font/**","/js/**","/img/**");
    }


自定义表单代码:

<form action="/login" method="post">
    <span>用户名称</span><input type="text" name="uname" id="username"/> <br>
    <span>用户密码</span><input type="password" name="pword" id="password"/> <br>
    <span>验证码</span><input type="text" name="captchaCode" id="captchaCode"/>
    <input type="submit" value="登陆">
    <label><input type="checkbox" name="remember-me" id="remember-me"/>记住密码</label>
</form>


记住我功能在configure(HttpSecurity http)方法里加入:

        //开启记住我功能,默认参数是remember-me
        http.rememberMe();


勾选记住我登录成功后,就会有一个remember-me的cookie20200921232816761.png

目录
相关文章
|
6天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
26天前
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
319 0
|
5天前
|
安全 Java 数据库
Spring Security加密解密
Spring Security加密解密
|
6天前
|
Java 容器
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
11 0
|
25天前
|
安全 Java 数据库
Spring Security 权限管理详解与案例
Spring Security 是 Spring 框架中用于提供认证和访问控制的模块。它保护了成千上万的应用程序,使其免受未经授权的访问。本文将详细介绍 Spring Security 的权限管理功能,并通过一个实际案例来展示其用法。
45 0
|
26天前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
42 1
|
5天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
12天前
|
Java API Spring
SpringBoot项目调用HTTP接口5种方式你了解多少?
SpringBoot项目调用HTTP接口5种方式你了解多少?
53 2
|
12天前
|
前端开发 JavaScript Java
6个SpringBoot 项目拿来就可以学习项目经验接私活
6个SpringBoot 项目拿来就可以学习项目经验接私活
26 0
|
25天前
|
前端开发 Java 关系型数据库
SpringBoot+MyBatis 天猫商城项目
SpringBoot+MyBatis 天猫商城项目
45 1