文档章节

Spring Security教程之自定义Spring Security默认的403页面

爱吃猫的小萌鱼
 爱吃猫的小萌鱼
发布于 2014/01/23 23:48
字数 383
阅读 1104
收藏 7

在最新的Spring Security教程-Spring Security实现访问控制教程中,如果没有授权的用户访问加密的页面,默认的403页面就会展示

在本次教程中,我们教你两种自定义Spring Security 默认的403页面的方法

1.使用access-denied-handler标签

最简单的方法就是使用access-denied-handler标签,在“error-page”设置你自己的403页面

1
2
3
4
 <http auto-config="true">
    <intercept-url pattern="/admin*" access="ROLE_ADMIN" />
    <access-denied-handler error-page="404"/>
  </http>

2.实现AccessDeniedHandler类

第二种方法就是创建一个类并实现AccessDeniedHandler类,重写“handle()”方法,在里面设置你自己的访问逻辑

MyAccessDeniedHandler.java 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.mkyong.common.handler;
  
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
  
public class MyAccessDeniedHandler implements AccessDeniedHandler {
    private String accessDeniedUrl;
  
    public MyAccessDeniedHandler() {
    }
  
    public MyAccessDeniedHandler(String accessDeniedUrl) {
        this.accessDeniedUrl = accessDeniedUrl;
    }
  
    @Override
    public void handle(HttpServletRequest request,
        HttpServletResponse response,
        AccessDeniedException accessDeniedException) throws IOException,
        ServletException {
  
       response.sendRedirect(accessDeniedUrl);
       request.getSession().setAttribute("message",
        "You do not have permission to access this page!");
  
    }
  
    public String getAccessDeniedUrl() {
        return accessDeniedUrl;
    }
  
    public void setAccessDeniedUrl(String accessDeniedUrl) {
        this.accessDeniedUrl = accessDeniedUrl;
    }
}

3.例子

下面假设是你自定义的403页面

403.jsp

1
2
3
4
5
6
<html>
<body>
    <h1>HTTP Status 403 - Access is denied</h1>
    <h3>Message : ${message}</h3>    
</body>
</html>

现在假如没有权限的用户访问受保护的页面,你自定义的403页面就会展示:

原创文章,转载请注明出处:http://www.it161.com/article/javaDetail?articleid=140113232712

更多原创内容,请访问:http://www.it161.com/

© 著作权归作者所有

爱吃猫的小萌鱼
粉丝 1
博文 16
码字总数 10296
作品 0
东城
私信 提问
Spring Security权限框架理论与实战演练

本章首先让大家学习到Spring Security权限框架的架构,之后大家可以学习到Spring Security权限框架的核心概念,包括拦截器、数据库管理、缓存、自定义决策等等,之后会手把手带大家基于Sprin...

芥末无疆sss
2018/10/18
0
0
SpringBoot集成Spring Security(1)——入门程序

因为项目需要,第一次接触Spring Security,早就听闻Spring Security强大但上手困难,今天学习了一天,翻遍了全网资料,才仅仅出入门道,特整理这篇文章来让后来者少踩一点坑(本文附带实例程...

yuanlaijike
2018/05/09
0
0
springsecurity配置问题

我最近才学 springsecurity 按照基本配置 设置 访问 怎么会报 There is no Action mapped for namespace / and action name spring_security_login 这样的错误呢 springsecurity本身不是提供...

why_java
2013/03/29
259
2
springboot系列十五 security 简单配置 保护接口安全

springsecurity提供了基于用户、角色、权限的安全控制 简单使用 在项目中加入security的依赖 写一个接口 启动项目后,访问 localhost:8080 发现需要输入用户名密码。这其实是springsecurity的...

yimingkeji
01/04
0
0
使用 Spring Security 实现基本认证

1. 概述 本教程展示了如何用spring创建、配置和自定义Basic Authentication. 我们将把我们的教程构建在简单的 Spring MVC example例子之上, 然后使用Spring Security提供的Basic Auth机制来保...

oschina
2013/06/04
4.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

日期时间命令date

命令date 用途:打印或设置系统日期和时间 语法:date [选项]... [+格式] 选项: -s, --set=STRING 根据 STRING 设置时间 -u, --utc, --universal 显示或设置全球时...

迷失De挣扎
54分钟前
3
0
小白讲网络安全系列

注入攻击防护 XSS注入 SQL注入 命令注入 文件上传 文件解压缩 CSRF防护 对称加密 非对称加密 数字证书 数字签名 完整性校验 消息验证码 单向散列Hash函数 口令单向加密算法 审计日志 认证鉴权...

一刀
今天
2
0
MYSQL 嵌套事务(SAVEPOINT) 与Spring 事务传播

摘要 savepoint 关键字可以实现嵌套事务。结合savepoint关键字,更方便理解spring的事务传播。 事务嵌套 初始化表脚本 drop table t;create table t(a int, primary key(a)); 开启事务 my...

liangxiao
今天
4
0
Chrome OS 更新新版本可让Linux访问USB连接的Android设备

谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75。本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Linux进行调试等等。...

linuxCool
昨天
15
0
聊聊feign的HystrixInvocationHandler

序 本文主要研究一下feign的HystrixInvocationHandler HystrixInvocationHandler feign-hystrix-10.2.3-sources.jar!/feign/hystrix/HystrixInvocationHandler.java final class HystrixInvo......

go4it
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部