`
游其是你
  • 浏览: 12755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

在最新的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/

0
1
分享到:
评论
2 楼 游其是你 2014-01-24  
Dead_knight 写道
"如果没有授权的用户访问加密的页面,默认的403页面就会展示"这段话错误的地方在“加密的页面”,Spring Security所做的事情是认证、授权。怎么会对页面加密呢......

谢谢您的指教,这样说的确不妥,稍后我就修改下。。。
1 楼 Dead_knight 2014-01-24  
"如果没有授权的用户访问加密的页面,默认的403页面就会展示"这段话错误的地方在“加密的页面”,Spring Security所做的事情是认证、授权。怎么会对页面加密呢......

相关推荐

    Spring security 自定义密码加密方式的使用范例。

    在Spring Security中,默认使用的是BCryptPasswordEncoder或者PBEWithMD5AndDES等加密算法。但为了满足特定需求,我们可以自定义密码编码器。下面是如何实现的步骤: 1. **创建自定义PasswordEncoder**:你需要创建...

    spring-security实现自定义登录认证.rar

    本资源“spring-security实现自定义登录认证.rar”包含了一个使用Spring Security进行登录认证的示例,以及JWT(JSON Web Tokens)与Spring Security集成的代码。 首先,让我们了解Spring Security的基本工作原理。...

    spring mvc 和spring security自定义登录

    AuthenticationProvider是Spring Security的核心组件之一,负责验证用户提供的凭证。我们可以在实现这个接口时,根据自己的业务逻辑去检查用户名和密码是否匹配,例如,连接到数据库进行查询。 接着,我们需要配置...

    SpringSecurity 之自定义用户权限信息的存取

    使用SpringSecurity默认的`User`类来创建`UserDetails`实例。`User`类是`UserDetails`的一个简单实现,其中可以包含用户名、密码和权限列表。权限列表是由`GrantedAuthority`对象组成的集合。可以通过`...

    springsecurity(用spring ibatis freemaker 用户自定义)实现的权限管理页面

    springsecurity(用spring ibatis freemaker)实现的用户自定义的权限管理页面, 里头包括数据库脚本 和原数据 和原代码 主要参考http://blog.csdn.net/k10509806/article/details/6369131 这个人的文章做的

    SpringSecurity学习之自定义过滤器的实现代码

    "SpringSecurity学习之自定义过滤器的实现代码" Spring Security学习之自定义过滤器的实现代码主要介绍了Spring Security学习之自定义过滤器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有...

    springsecurity2 自定义filter实现

    在Spring Security框架中,自定义过滤器是实现特定安全需求的一种常见方式。Spring Security的核心功能是通过一系列的Filter链来处理HTTP请求,这些Filter包括认证、授权等关键操作。本篇我们将深入探讨如何在Spring...

    Spring-Security3.0自定义表结构

    ### Spring Security 3.0 自定义表结构详解 在企业级应用开发中,Spring Security作为Spring框架的一个子项目,提供了一套完整的权限管理和安全性解决方案。它不仅能够处理身份验证(authentication)和授权...

    spring security 4 小例子带自定义过滤器

    这意味着在Spring Security的默认认证流程开始前,我们的自定义过滤器将先执行。 3. **集成Spring Security**:为了让自定义过滤器能与Spring Security的其他组件协同工作,我们可能需要设置一些属性,如`...

    Spring Security 教程(Spring Security Tutorial)1

    - 如果应用使用 JPA(Java Persistence API)作为数据访问技术,Spring Security 可以与之集成,通过 `UserDetailsService` 接口来查询用户信息和权限。 9. **摘要认证**: - 摘要认证是一种常见的身份验证方式,...

    Spring Security 中文教程.pdf

    ### Spring Security 中文教程知识点概览 #### 一、Spring Security简介 - **Spring Security**是一种全面的安全服务框架,主要用于基于J2EE的企业应用程序。它与Spring框架紧密结合,旨在简化安全性的实现,使得...

    Spring Security-3中文官方文档(及教程)

    10. **自定义**:Spring Security的灵活性允许开发者根据需求创建自定义策略和组件,如自定义权限表达式、自定义认证和授权逻辑。 教程文档则可能深入到实践操作,包括如何配置Spring Security、创建第一个安全应用...

    spring security3.1 实现验证码自定义登录

    《Spring Security 3.1 实现验证码自定义登录详解》 在现代Web应用程序的安全管理中,Spring Security是一个不可或缺的框架,它提供了强大的访问控制和身份验证功能。在本文中,我们将深入探讨如何在Spring ...

    spring security教程

    本教程是基于Mossle平台整理的Spring Security入门资料,旨在帮助初学者快速掌握这一关键的安全技术。 首先,我们要理解Spring Security的核心概念。**认证**是验证用户身份的过程,通常涉及用户名和密码的输入。**...

    SpringSecurity笔记,编程不良人笔记

    在`SpringSecurity.md`和`SpringSecurity.pdf`文档中,可能包含SpringSecurity配置、自定义用户服务、授权策略等方面的代码示例。`codes`目录可能包含实际运行的项目代码,方便读者实践和理解。 8. **图笔记.draw...

    spring security进级篇 V 自定义标签控制显示

    自定义标签在Spring Security中扮演着重要角色,它们允许开发者在视图层(如JSP页面)轻松地应用安全控制。这通常通过使用Spring Security的JSP标签库来实现,例如`&lt;sec:authorize&gt;`,它可以判断当前用户是否有权限...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    3. **定制Filter**:在Spring Cloud Gateway中,我们可以自定义WebFlux Filter,利用Spring Security提供的API进行认证和鉴权。这通常涉及到`@PreAuthorize`和`@Secured`等注解的使用,以控制对特定路由的访问权限。...

    Spring Security 资料合集

    - 默认情况下,Spring Security 开启了跨站请求伪造(CSRF)防护,通过生成并验证CSRF令牌,防止恶意第三方发起未经授权的操作。 6. **表达式式语言**: - Spring Security 使用一种强大的表达式语言(EL),如`...

    Spring MVC Security-添加自定义登录表单,显示无效凭据、基于角色的访问、自定义访问被拒绝的错误消息.zip

    如果凭证无效,Spring Security会抛出`BadCredentialsException`,并显示默认的错误消息。 为了显示自定义的无效凭据错误消息,我们需要配置Spring Security的`AuthenticationFailureHandler`。这个处理器会在认证...

Global site tag (gtag.js) - Google Analytics