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

目录
相关文章
|
2月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
110 0
|
2月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
117 0
|
1月前
|
前端开发 Java Maven
Spring 和 Spring Boot 之间的比较
本文对比了标准Spring框架与Spring Boot的区别,重点分析两者在模块使用(如MVC、Security)上的差异。Spring提供全面的Java开发基础设施支持,包含依赖注入和多种开箱即用的模块;而Spring Boot作为Spring的扩展,通过自动配置、嵌入式服务器等功能简化开发流程。文章还探讨了两者的Maven依赖、Mvc配置、模板引擎配置、启动方式及打包部署等方面的异同,展示了Spring Boot如何通过减少样板代码和配置提升开发效率。总结指出,Spring Boot是Spring的增强版,使应用开发、测试与部署更加便捷高效。
286 10
|
2月前
|
消息中间件 存储 Java
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
本教程介绍ActiveMQ的安装与基本使用。首先从官网下载apache-activemq-5.15.3版本,解压后即可完成安装,非常便捷。启动时进入解压目录下的bin文件夹,根据系统选择win32或win64,运行activemq.bat启动服务。通过浏览器访问`http://127.0.0.1:8161/admin/`可进入管理界面,默认用户名密码为admin/admin。ActiveMQ支持两种消息模式:点对点(Queue)和发布/订阅(Topic)。前者确保每条消息仅被一个消费者消费,后者允许多个消费者同时接收相同消息。
76 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
|
2月前
|
消息中间件 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——发布/订阅消息的生产和消费
本文详细讲解了Spring Boot中ActiveMQ的发布/订阅消息机制,包括消息生产和消费的具体实现方式。生产端通过`sendMessage`方法发送订阅消息,消费端则需配置`application.yml`或自定义工厂以支持topic消息监听。为解决点对点与发布/订阅消息兼容问题,可通过设置`containerFactory`实现两者共存。最后,文章还提供了测试方法及总结,帮助读者掌握ActiveMQ在异步消息处理中的应用。
109 0
|
2月前
|
消息中间件 网络协议 Java
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ集成
本文介绍了在 Spring Boot 中集成 ActiveMQ 的详细步骤。首先通过引入 `spring-boot-starter-activemq` 依赖并配置 `application.yml` 文件实现基本设置。接着,创建 Queue 和 Topic 消息类型,分别使用 `ActiveMQQueue` 和 `ActiveMQTopic` 类完成配置。随后,利用 `JmsMessagingTemplate` 实现消息发送功能,并通过 Controller 和监听器实现点对点消息的生产和消费。最后,通过浏览器访问测试接口验证消息传递的成功性。
69 0
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
817 1
|
JSON 安全 Java
Spring Security OAuth 实现 GitHub 快捷登录
Spring Security 5中集成了OAuth的客户端模块,该模块包含以下三个子模块
Spring Security OAuth 实现 GitHub 快捷登录
|
设计模式 安全 NoSQL
从零开始的Spring Security Oauth2(一)
从零开始的Spring Security Oauth2(一)
6753 3
从零开始的Spring Security Oauth2(一)
|
JSON 安全 Java
再见,Spring Security OAuth!!
本次将 《Spring Authorization Server》项目正式上线,去掉了之前的体验状态,此举恰逢 0.2.0 版本发布,这也是第一个正式支持的生产就绪版本。
再见,Spring Security OAuth!!