IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> SpringSecurity的默认登录界面和自建的login页面产生冲突 -> 正文阅读

[网络协议]SpringSecurity的默认登录界面和自建的login页面产生冲突

我自己的login页面

在这里插入图片描述

我自己的LoginController文件

@Controller
public class LoginController {
//    @RequestMapping单个路径用@RequestMapping(""),多个路径用@RequestMapping({"a","b"})
    @RequestMapping({"/login","login","/login.html","/user/login"})//
    public String login(){
        return "login";
    }
}

原本的情况下应该是跳转到自己的登录页面的,但为了测试security自带的页面出现了一些问题

SpringSecurity自带的默认页面功能

http.formLogin()即可开启默认登录页面,并且我发现优先度高于我在Controller里的自己的login。
但是加了.loginPage("/login")//用户未登录时,访问任何资源都转跳到该路径,即登录页面这一行后发现自己的login页面优先度更高了,特此记录一下。

  @Override
    protected void configure(HttpSecurity http) throws Exception {//授权
        //通过路径设置授权限制访问
        http.authorizeHttpRequests()
                .antMatchers("/").permitAll()//对于默认/来说允许所有人访问
                .antMatchers("/index").hasRole("users")//只允许用户可以登录index页面
                .and()
                //没有权限会自动跳转到默认登录界面
                .formLogin()
//                .loginPage("/login")//用户未登录时,访问任何资源都转跳到该路径,即登录页面
//                .loginProcessingUrl("/login")//登录表单form中action的地址,也就是处理认证请求的路径
//                .usernameParameter("name")///登录表单form中用户名输入框input的name名,不修改的话默认是username
//                .passwordParameter("password")//form中密码输入框input的name名,不修改的话默认是password
//                .defaultSuccessUrl("/index")//登录认证成功后默认转跳的路径
                .and()
                .logout().logoutSuccessUrl("/")//开启注销功能,注销成功返回注册页面
                .and()
                ;

解决方案

为了解决security的登录成功后跳转到自己写的login里,可以.defaultSuccessUrl(“/index”),使他成功后直接跳到指定页面。

@Override
    protected void configure(HttpSecurity http) throws Exception {//授权
        //通过路径设置授权限制访问
        http.authorizeHttpRequests()
                .antMatchers("/").permitAll()//对于默认/来说允许所有人访问
                .antMatchers("/index").hasRole("users")//只允许用户可以登录index页面
                .and()
                //没有权限会自动跳转到默认登录界面
                .formLogin()
                .defaultSuccessUrl("/index")//登录认证成功后默认转跳的路径,这一行如果不加,会继续跳转到自己的login页面
                .and()
                .logout().logoutSuccessUrl("/")//开启注销功能,注销成功返回注册页面
                .and()
                ;
        //防止网站攻击 get不太安全 post较安全
        http.csrf().disable();//关闭csrfCSRF(Cross-site request forgery)
        // 也被称为:one click attack/session riding,中文名称:跨站请求伪造,缩写为:CSRF/XSRF。

        //开启记住我功能,本质就是个cookie
        http.rememberMe();

    }
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 12:12:36  更:2022-04-26 12:13:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:50:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码