开始吧

1、 准备 403 错误页面

非常抱歉!您没有访问这个功能的权限!(回家照照镜子)

${message }

2、 HttpSecurity对象配置跳转页面(全部代码)

主要看步骤3的细节内容

//重写configure方法进行配置

@Override

protected void configure(HttpSecurity httpSecurity) throws Exception {

httpSecurity

//配置入口

.authorizeRequests() //对请求进行授权

.antMatchers("index.jsp", "/layui/**") //针对 /index.jsp以及layui下的内容进行授权(对哪些资源开放)

.permitAll() //授权的级别:可以无条件访问(开放的级别)

//以下是用来设置拥有什么角色才能访问什么资源

.antMatchers("/level1/**") //设置匹配/level1/**的地址

.hasRole("学徒") //要求具备“学徒”角色

.antMatchers("/level2/**")

.hasRole("大师")

.antMatchers("/level3/**")

.hasRole("宗师")

.anyRequest() //任意请求

.authenticated() //需要登陆后才可以访问(如果此句代码和上句代码先调用,会把前面设置的角色代码的设置覆盖,导致角色代码无效。所以要 先做具体小范围设置,再做大范围模糊设置。)

//以下是用户登录方法实现

.and()

.formLogin() //设置未授权请求跳转到登录页面

.loginPage("/index.jsp") //指定登录页面

.loginProcessingUrl("/do/login.html") //loginProcessingUrl()方法指定了登录地址,就会覆盖 loginPage()方法中设置的默认值 /index.jsp POST

.permitAll() //为登录页面设置所有人都可以访问

.usernameParameter("loginAcct") //定制登录账号的请求参数名

.passwordParameter("userPswd") //定制登录密码的请求参数名

.defaultSuccessUrl("/main.html") //设置登录成功后默认前往的 URL 地址

//以下是用户注销方法实现

.and()

.csrf()

.disable() //禁用CSRF功能

.logout() //开启退出功能

.logoutUrl("/do/logout.html") //指定处理退出请求的URL地址

.logoutSuccessUrl("/index.jsp") //退出成功后前往的 URL 地址

//以下是访问不到后跳转到自定义的页面

.and()

.exceptionHandling() //出现异常后,方法入口

// .accessDeniedPage("/to/no/auth/page.html") //访问被拒绝去的地方(系统默认自定义跳转的方法)

.accessDeniedHandler(new AccessDeniedHandler() {

@Override

public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException e) throws IOException, ServletException {

//匿名内部类,重写handle方法。自定义内容信息

httpServletRequest.setAttribute("message", e.getMessage() + "???自定义信息内容???我是访问被拒绝去的地方,不是系统默认自定义跳转的方法???");

httpServletRequest.getRequestDispatcher("/WEB-INF/views/no_auth.jsp").forward(httpServletRequest, httpServletResponse);

}

})

;

}

//重写另外一个父类的方法,来设置登录系统的账号密码(单机版,不走数据库)

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

//super.configure(auth);禁用默认规则

auth

//配置入口

.inMemoryAuthentication() //在内存身份验证(单机版,不走数据库)

//设置第一个用户

.withUser("zhou") //设置登录账号

.password("123") //设置登录密码

.roles("ADMIN") //设置角色

//设置第二个用户

.and()

.withUser("qiong") //设置另一个登录账号

.password("234") //设置另一个登录密码

.authorities("SAVE", "DEIT") //设置权限

//设置第三个用户

.and()

.withUser("yuan")

.password("345")

.roles("大师")

.authorities("SAVE")

;

}

3、 一共有两种方式

第一种:系统默认自定义跳转的方法。但是"/to/no/auth/page.html"这玩意儿得自己写handler控制跳转页面位置

.and()

.exceptionHandling() //出现异常后,方法入口

.accessDeniedPage("/to/no/auth/page.html") //访问被拒绝去的地方(系统默认自定义跳转的方法)

@RequestMapping("/to/no/auth/page.html")

public String toNoAuthPage() {

return "no_auth";

}

第二种:自定义内容信息和跳转位置。其实不难看出只要是带Handler的都可以自定义!

.and()

.exceptionHandling() //出现异常后,方法入口

.accessDeniedHandler(new AccessDeniedHandler() {

@Override

public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException e) throws IOException, ServletException {

//匿名内部类,重写handle方法。自定义内容信息

httpServletRequest.setAttribute("message", e.getMessage() + "???自定义信息内容???我是访问被拒绝去的地方,不是系统默认自定义跳转的方法???");

httpServletRequest.getRequestDispatcher("/WEB-INF/views/no_auth.jsp").forward(httpServletRequest, httpServletResponse);

}

})

测试成功图

html怎么定义403页面,自定义 403 错误页面(示例代码)相关推荐

  1. springboot2 配置404、403、500等错误页面自动跳转

    springboot2 配置404.403.500等错误页面自动跳转 创建配置类ErrorPageConfig import org.springframework.boot.web.server.E ...

  2. iis php 404错误页面,IIS自定义404错误页面

    404.503错误相信大多数站长朋友很对很熟悉,网站刚刚搭建完成后我们一般都会做一个404和503错误页面.那么这是怎么操作的呢?熟悉我的朋友们一定会记得我前段时间写的一篇<Apache服务器实 ...

  3. 在ASP.NET MVC3项目中,自定义404错误页面

    在Web开发中,用户体验是至关重要的,一个友好的网站自然少不了自定义404错误页面. 让笔者为大家介绍404错误页面在ASP.NET MVC3项目中的配置: 第一步,在项目的Web.config文件中 ...

  4. 15个创意示例教您如何自定义 404 错误页面

    在这篇文章中,你会看到一组充满创意的404错误页面设计.我希望这个集合能够启发和帮助你设计自己的 404 错误页面.一个自定义的404错误页面将鼓励用户在您的网站上停留更长的时间. 404页面必须让访 ...

  5. php 怎么开启错误报告,总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因...

    总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/8/28 那么如果PHP脚本不报语法错,会是什么原因呢: 1. ...

  6. html导出excel代码,html页面导出为excel表格(示例代码)

    简介这篇文章主要介绍了html页面导出为excel表格(示例代码)以及相关的经验技巧,文章约4421字,浏览量324,点赞数9,值得推荐! 导出考勤表格 王婷111 一见倾城333 祈澈姑娘222 P ...

  7. Web页面右下角弹出窗口示例代码

    Web页面右下角弹出窗口示例代码 声明:本代码来源于CSDN论坛,原帖为http://community.csdn.net/Expert/TopicView3.asp?id=5239784 版权归原作 ...

  8. ASP.NET 自定义404错误页面

    默认情况下微软已经在 Web.config 加入了如下代码: <customErrors mode="RemoteOnly" defaultRedirect="Ge ...

  9. nginx自定义404错误页面

    在Nginx环境下配置自定义的404错误页面转向,避免给用户展示生硬.不友好的错误信息.可以给出如下提示:很抱歉,您访问的页面不存在或已被删除. 注意事项: 一.修改nginx.conf之前做好备份, ...

  10. android webview 自定义404错误页面!

    自定义404页面.android的webview 控件可以加载网页,webview有两个方法:webView.setWebChromeClient和webView.setWebViewClient. ...

最新文章

  1. PyQt5 技巧篇-窗口置顶设置,如何使窗口始终显示在最前面
  2. 修改PostgreSQL数据库默认用户postgres的密码
  3. mvc 实例 php,来写一个简单的PHP MVC结构
  4. python中的bs4怎么导入_在Python 3.5导入BS4
  5. Swift3.0 键盘高度监听获取
  6. MySQL中事务控制语句_Mysql事务控制语言
  7. 神奇的canvas——巧用 canvas 为图片添加水印
  8. Session赋值(备注)
  9. MySQL开启命令自动补全功能(auto-rehash)
  10. select默认选中
  11. 【原版教材•中英对照】密度泛函理论的化学家指南(第二版)— 传统量子力学的化学家们将从这篇得到特别的启发
  12. Cortex-M3 (NXP LPC1788)之PWM(脉宽调制器)
  13. 国内外免费sns源码程序大集合
  14. PicGo 安装及配置
  15. drm android 工作原理,[原创]某DRM解密流程简单分析
  16. BS模型和CS模型的介绍和区别
  17. 关于浏览器账密自动填充
  18. 上海钢联朱军红:产业互联网的“双创”之路
  19. 管理者的七大失败原因
  20. Fiddler抓包6-get请求(url详解)

热门文章

  1. 《零基础入门学习Python》第019讲:函数:我的地盘听我的
  2. go语言中的try、catch、throw实现
  3. Waterfall Header Bidding机制
  4. python俄罗斯方块小游戏实验报告_用Python实现童年小游戏俄罗斯方块
  5. mongoDB 注册成开启自启动项
  6. java font好看的字体_解决Java字体难看的问题
  7. 【Datawhale数据可视化组队学习】Task05 - 样式色彩秀芳华
  8. c# ppt 转 html,C# 实现PPT 每一页转成图片
  9. 2022年烷基化工艺找解析及烷基化工艺考试总结
  10. 少儿编程--STEMA考试介绍转自STEMA (STEM 能力测试) 考 试 白 皮 书